|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
wxNotebook and wx_objectHi,
Before I post a patch to erlang-patches I was just wondering if it these two things are intended behaviour: 1) If I add a Panel to Notebook (as a page) and then destroy the Panel, I can then ask for the panel on the same index (wxNotebook:getPage/2) and get a different panel. further more, if I have added a panel and then ask for an index outside of the number of panels I get a new Panel which I never created. Also, why does the page index start at 0 when everything else in Erlang is 1 based (pretty much). E.g: Nb = wxNotebook:new(Parent, ?wxID_ANY, []), Panel = wxPanel:new(), wxNotebook:addPage(Nb, Panel, "Whatever", []), %% this is the first page added P1 = wxNotebook:getPage(Nb, 0), %% this gives the first page added (Panel), PUnknown = wxNotebook:getPage(Nb, 1), %% this gives a new page... why? shouldn't it crash or something? wxPanel:destroy(Panel), %% delete the panel P2 = wxNotebook:getPage(Nb, 0), %% P1 /= P2 /= PUnknown Is this intended behaviour? I don't have a patch for this because I don't know what is expected 2) firstly, when calling wx_object:start_link/X and returning {stop, whatever} it exits the process. Why? second, it patternmatches the return value (from the ack) to {ok, Pid}, again: Why? This causes the return value to exit with badmatch, I'm sure that is not intended? Or is it? /Mazen ________________________________________________________________ erlang-bugs mailing list. See http://www.erlang.org/faq.html erlang-bugs (at) erlang.org |
|
|
Re: wxNotebook and wx_objectHi
wx(Erlang) is just an erlang port of wxWidgets, it marshals the arguments and make the corresponding C++ calls and so it behaves exactly the same as the original wxWidgets. Thus since wxWidgets is coded in C++ everything in wx starts from 0 and not 1. I can't answer the first question since it's not a feature of wxErlang you have to send those kind of questions to wxWidgets list, I'm no expert of the implementation of wxWidgets. Also I don't think you can depend on that behavior (unless it's documented) for all platforms. Question 2, is should mimic the gen_server behavior, I'll have a look how it's handled there. /Dan On Sun, Sep 27, 2009 at 11:41 AM, Mazen Harake <mazen.harake@...> wrote: > Hi, > > Before I post a patch to erlang-patches I was just wondering if it these two > things are intended behaviour: > > 1) If I add a Panel to Notebook (as a page) and then destroy the Panel, I > can then ask for the panel on the same index (wxNotebook:getPage/2) and get > a different panel. further more, if I have added a panel and then ask for an > index outside of the number of panels I get a new Panel which I never > created. Also, why does the page index start at 0 when everything else in > Erlang is 1 based (pretty much). > > E.g: > Nb = wxNotebook:new(Parent, ?wxID_ANY, []), > Panel = wxPanel:new(), > wxNotebook:addPage(Nb, Panel, "Whatever", []), %% this is the first page > added > P1 = wxNotebook:getPage(Nb, 0), %% this gives the first page added (Panel), > PUnknown = wxNotebook:getPage(Nb, 1), %% this gives a new page... why? > shouldn't it crash or something? > wxPanel:destroy(Panel), %% delete the panel > P2 = wxNotebook:getPage(Nb, 0), > %% P1 /= P2 /= PUnknown > > Is this intended behaviour? I don't have a patch for this because I don't > know what is expected > > 2) firstly, when calling wx_object:start_link/X and returning {stop, > whatever} it exits the process. Why? > second, it patternmatches the return value (from the ack) to {ok, Pid}, > again: Why? This causes the return value to exit with badmatch, I'm sure > that is not intended? Or is it? > > /Mazen > > ________________________________________________________________ > erlang-bugs mailing list. See http://www.erlang.org/faq.html > erlang-bugs (at) erlang.org > > ________________________________________________________________ erlang-bugs mailing list. See http://www.erlang.org/faq.html erlang-bugs (at) erlang.org |
|
|
Re: wxNotebook and wx_objectHi,
Thanks for the reply, I agree that one shouldn't depend on that behaviour, that is why I don't, but now at least I know it is not an erlang "bug" per se. /Mazen Dan Gudmundsson wrote: > Hi > > wx(Erlang) is just an erlang port of wxWidgets, it marshals the arguments and > make the corresponding C++ calls and so it behaves exactly the same as the > original wxWidgets. > > Thus since wxWidgets is coded in C++ everything in wx starts from 0 and not 1. > > I can't answer the first question since it's not a feature of wxErlang > you have to > send those kind of questions to wxWidgets list, I'm no expert of the > implementation > of wxWidgets. > > Also I don't think you can depend on that behavior (unless it's > documented) for all > platforms. > > Question 2, is should mimic the gen_server behavior, I'll have a look > how it's handled > there. > > /Dan > > On Sun, Sep 27, 2009 at 11:41 AM, Mazen Harake > <mazen.harake@...> wrote: > >> Hi, >> >> Before I post a patch to erlang-patches I was just wondering if it these two >> things are intended behaviour: >> >> 1) If I add a Panel to Notebook (as a page) and then destroy the Panel, I >> can then ask for the panel on the same index (wxNotebook:getPage/2) and get >> a different panel. further more, if I have added a panel and then ask for an >> index outside of the number of panels I get a new Panel which I never >> created. Also, why does the page index start at 0 when everything else in >> Erlang is 1 based (pretty much). >> >> E.g: >> Nb = wxNotebook:new(Parent, ?wxID_ANY, []), >> Panel = wxPanel:new(), >> wxNotebook:addPage(Nb, Panel, "Whatever", []), %% this is the first page >> added >> P1 = wxNotebook:getPage(Nb, 0), %% this gives the first page added (Panel), >> PUnknown = wxNotebook:getPage(Nb, 1), %% this gives a new page... why? >> shouldn't it crash or something? >> wxPanel:destroy(Panel), %% delete the panel >> P2 = wxNotebook:getPage(Nb, 0), >> %% P1 /= P2 /= PUnknown >> >> Is this intended behaviour? I don't have a patch for this because I don't >> know what is expected >> >> 2) firstly, when calling wx_object:start_link/X and returning {stop, >> whatever} it exits the process. Why? >> second, it patternmatches the return value (from the ack) to {ok, Pid}, >> again: Why? This causes the return value to exit with badmatch, I'm sure >> that is not intended? Or is it? >> >> /Mazen >> >> ________________________________________________________________ >> erlang-bugs mailing list. See http://www.erlang.org/faq.html >> erlang-bugs (at) erlang.org >> >> >> ________________________________________________________________ erlang-bugs mailing list. See http://www.erlang.org/faq.html erlang-bugs (at) erlang.org |
|
|
Re: wxNotebook and wx_objectAny news on this? Is the pattern match going to be removed?
I had a look at gen_server, and that doesn't have a pattern match. Just wanted to know because otherwise I will have to work around it because currently I'm working with a hacked wx_object :) Cheers, /Mazen Mazen Harake wrote: > Hi, > > Thanks for the reply, I agree that one shouldn't depend on that > behaviour, that is why I don't, but now at least I know it is not an > erlang "bug" per se. > > /Mazen > > > Dan Gudmundsson wrote: >> Hi >> >> wx(Erlang) is just an erlang port of wxWidgets, it marshals the >> arguments and >> make the corresponding C++ calls and so it behaves exactly the same >> as the >> original wxWidgets. >> >> Thus since wxWidgets is coded in C++ everything in wx starts from 0 >> and not 1. >> >> I can't answer the first question since it's not a feature of wxErlang >> you have to >> send those kind of questions to wxWidgets list, I'm no expert of the >> implementation >> of wxWidgets. >> >> Also I don't think you can depend on that behavior (unless it's >> documented) for all >> platforms. >> >> Question 2, is should mimic the gen_server behavior, I'll have a look >> how it's handled >> there. >> >> /Dan >> >> On Sun, Sep 27, 2009 at 11:41 AM, Mazen Harake >> <mazen.harake@...> wrote: >> >>> Hi, >>> >>> Before I post a patch to erlang-patches I was just wondering if it >>> these two >>> things are intended behaviour: >>> >>> 1) If I add a Panel to Notebook (as a page) and then destroy the >>> Panel, I >>> can then ask for the panel on the same index (wxNotebook:getPage/2) >>> and get >>> a different panel. further more, if I have added a panel and then >>> ask for an >>> index outside of the number of panels I get a new Panel which I never >>> created. Also, why does the page index start at 0 when everything >>> else in >>> Erlang is 1 based (pretty much). >>> >>> E.g: >>> Nb = wxNotebook:new(Parent, ?wxID_ANY, []), >>> Panel = wxPanel:new(), >>> wxNotebook:addPage(Nb, Panel, "Whatever", []), %% this is the first >>> page >>> added >>> P1 = wxNotebook:getPage(Nb, 0), %% this gives the first page added >>> (Panel), >>> PUnknown = wxNotebook:getPage(Nb, 1), %% this gives a new page... why? >>> shouldn't it crash or something? >>> wxPanel:destroy(Panel), %% delete the panel >>> P2 = wxNotebook:getPage(Nb, 0), >>> %% P1 /= P2 /= PUnknown >>> >>> Is this intended behaviour? I don't have a patch for this because I >>> don't >>> know what is expected >>> >>> 2) firstly, when calling wx_object:start_link/X and returning {stop, >>> whatever} it exits the process. Why? >>> second, it patternmatches the return value (from the ack) to {ok, Pid}, >>> again: Why? This causes the return value to exit with badmatch, I'm >>> sure >>> that is not intended? Or is it? >>> >>> /Mazen >>> >>> ________________________________________________________________ >>> erlang-bugs mailing list. See http://www.erlang.org/faq.html >>> erlang-bugs (at) erlang.org >>> >>> >>> > > > ________________________________________________________________ > erlang-bugs mailing list. See http://www.erlang.org/faq.html > erlang-bugs (at) erlang.org > ________________________________________________________________ erlang-bugs mailing list. See http://www.erlang.org/faq.html erlang-bugs (at) erlang.org |
| Free embeddable forum powered by Nabble | Forum Help |