Re: [Iup-users] IupGridBox, Part II
Brought to you by:
scuri
From: Andrew R. <aro...@co...> - 2017-01-19 18:03:26
|
You are a very responsive developer, Antonio! I have yet to see anyone like you in any other group like IUP. I just hope that even when you someday leave this group, that nothing will change about it. You saved me the work of having to do my own GUI layout handler. I will give you future feedback on it, if needed. In the meantime, here is a little feedback in regards to the IupGridBox documentation: Ihandle* IupGridBoxv(Ihandle **children); should be listed as Ihandle* IupGridBoxv(Ihandle *children[]); or Ihandle* IupGridBoxv(Ihandle ***children); That last one might seem a little strange, but I saw it used by GTK+ for argv in their entry routine. Maybe this Stack Overflow discussion will make sense of that: http://stackoverflow.com/questions/13998669/cpp-pointers-and-arrays I know, I'm a little anal about documentation and a lot of people are not receptive about that, so if this isn't really all that important to you, you can safely ignore it. I just thought I would at least try :^) Andrew On 1/19/2017 at 10:26 AM, Antonio Scuri <ant...@gm...> wrote: Hi, I added a new option for SIZECOL and SIZELIN, they can now be -1. If so all controls will be considered when computing the gridbox size. Also I fixed an error in gridbox alignment. Just committed to SVN. IUP 3.21 should be released next week. Best, Scuri On Sun, Jan 15, 2017 at 2:04 PM, Antonio Scuri <ant...@gm...> wrote: Ok. Got it. Best, Scuri On Sun, Jan 15, 2017 at 1:11 PM, Andrew Robinson <aro...@co...> wrote: int fnSrcFile(void) { return IUP_DEFAULT } int fnDstFile(void) { return IUP_DEFAULT } int fnBtnOk(void) { return IUP_DEFAULT } int fnBtnQuit(void) { return IUP_CLOSE } int main(int argc, char **argv) { Ihandle *dlg, *hTxt, *guiPtr; struct stGui { Ihandle *lbl1; Ihandle *lbl2; Ihandle *txt1; Ihandle *btn1; Ihandle *lbl3; Ihandle *lbl4; Ihandle *txt2; Ihandle *btn2; Ihandle *lbl5; Ihandle *lbl6; Ihandle *btn3; Ihandle *btn4; Ihandle *end1 = 0; } IupOpen(&argc, &argv); lbl1 = IupLabel('SOURCE FILE') lbl2 = IupLabel(':') lbl3 = IupLabel('DST DIR') lbl4 = IupLabel(':') txt1 = IupText(NULL) IupSetAttribute(txt1,'RASTERSIZE','125') IupSetAttribute,(txt1,'MULTILINE','NO') txt2 = IupText(NULL) IupSetAttribute(txt2,'RASTERSIZE','125') IupSetAttribute(txt2,'MULTILINE','NO') btn1 = IupButton('SRC',NULL) IupSetCallback(btn1,'ACTION',&fnSrcFile) btn2 = IupButton('DST',NULL) IupSetCallback(btn2,'ACTION',&fnDstFile) lbl5 = IupLabel('') lbl6 = IupLabel('') btn3 = IupButton('OK',NULL) IupSetCallback(btn3,'ACTION',&fnBtnOk) btn4 = IupButton('QUIT',NULL) IupSetCallback(btn4,'ACTION',&fnBtnQuit) ptrGui = &stGui; gbox = IupGridBoxv(guiPtr) IupSetAttribute(gbox,'ORIENTATION','HORIZONTAL') IupSetAttribute(gbox,'NUMDIV','4') IupSetAttribute(gbox,'SIZELIN','0') IupSetAttribute(gbox,'SIZECOL','2') IupSetAttribute(gbox,'MARGIN','5x5') IupSetAttribute(gbox,'GAPCOL','5') IupSetAttribute(gbox,'GAPLIN','5') IupSetAttribute(gbox,'ALIGNMENTLIN','ACENTER') IupSetAttribute(gbox,'ALIGNMENTCOL','ARIGHT') dlg = IupDialog(gbox) IupSetAttribute(dlg,'TITLE','Hello World') IupShowXY(dlg,IUP_CENTER,IUP_CENTER) IupMainLoop IupClose Forgive me if there are some typos in translating this. On 1/9/2017 at 10:54 AM, Antonio Scuri <ant...@gm...> wrote: Hi, Can you send me the code for that example. I may have an idea. Best, Scuri On Sun, Jan 8, 2017 at 3:16 PM, Andrew Robinson <aro...@co...> wrote: Hello, This is just feedback of user satisfaction. It is not a complaint, it is just an opinion and requires no response. I'm hoping someone will understand what I am saying here and will think of a way to improve the container functionality to bring it up to a more state-of-the-art level. With the following parameters: MARGIN=5x5 GAPCOL=5 GAPLIN=5 I get the following rendering: Note how GAPLIN has no effect. That's because IUP needs to be told which component in the entire grid is the the tallest component in the entire grid, so with that in mind, I used the following parameters, SIZELIN=1 SIZECOL=2 MARGIN=5x5 GAPCOL=5 GAPLIN=5 and I get the following rendering: So now GAPLIN is working, but I have a problem with the GAPCOL ignoring the QUIT button's width because IUP hasn't been told that the QUIT button is the widest button in that column, but I cannot convey that information to IUP without screwing up the rest of the layout, since columns zero and one of line 2 are zero width and zero height: To get this to work, I tried inserting the GridBox inside of a Vbox or Hbox, but they too have no effect on the QUIT button margin. I could make this work by overriding the fault main window width by using USERSIZE, but why have containers if I typically will have to override them like this? That was only for a simplified user interface. Just spelling out the labels and flipping SRC with DST, I get this rendering, which is awful and not very fixable. Therefore the problem is this: I cannot choose a container that will let me align components both vertically and horizontally. It is either one or the other, but not both. GridBox comes close but it isn't very powerful, as you can see. There is no point in having any of these containers, if they can only do very simple "Hello World" interfaces and nothing beyond that, without having to compile a confusing slew of Vboxes, Hboxes, and GridBoxes into your user interface. As much as I hate JAVA, their version of the GridBox was very useful. As it stands, I need to resort to the cumbersome CX and CY attributes of each component to make anything more complicated than a "Hellow World" user interface work. What is really great about GridBox is that you only need to pass one parameter to the function to load your entire interface. Best Regards, Andrew ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Iup-users mailing list Iup...@li... https://lists.sourceforge.net/lists/listinfo/iup-users |