cgui-develop Mailing List for CGUI - a gui lib for multiplatform (Page 5)
                
                Brought to you by:
                
                    chrisan,
                    
                
                    rasmusmyklebust
                    
                
            
            
        
        
        
    You can subscribe to this list here.
| 2003 | 
          Jan
           | 
        
        
        
        
          Feb
           | 
        
        
        
        
          Mar
           | 
        
        
        
        
          Apr
           (43)  | 
        
        
        
        
          May
           (9)  | 
        
        
        
        
          Jun
           (35)  | 
        
        
        
        
          Jul
           | 
        
        
        
        
          Aug
           | 
        
        
        
        
          Sep
           (3)  | 
        
        
        
        
          Oct
           (2)  | 
        
        
        
        
          Nov
           (2)  | 
        
        
        
        
          Dec
           (9)  | 
        
      
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 | 
          Jan
           (26)  | 
        
        
        
        
          Feb
           (12)  | 
        
        
        
        
          Mar
           (17)  | 
        
        
        
        
          Apr
           (4)  | 
        
        
        
        
          May
           (157)  | 
        
        
        
        
          Jun
           (19)  | 
        
        
        
        
          Jul
           (21)  | 
        
        
        
        
          Aug
           (1)  | 
        
        
        
        
          Sep
           (36)  | 
        
        
        
        
          Oct
           (10)  | 
        
        
        
        
          Nov
           (19)  | 
        
        
        
        
          Dec
           (21)  | 
        
      
| 2005 | 
          Jan
           (10)  | 
        
        
        
        
          Feb
           (20)  | 
        
        
        
        
          Mar
           (8)  | 
        
        
        
        
          Apr
           (30)  | 
        
        
        
        
          May
           | 
        
        
        
        
          Jun
           | 
        
        
        
        
          Jul
           | 
        
        
        
        
          Aug
           (2)  | 
        
        
        
        
          Sep
           (42)  | 
        
        
        
        
          Oct
           (73)  | 
        
        
        
        
          Nov
           (38)  | 
        
        
        
        
          Dec
           (13)  | 
        
      
| 2006 | 
          Jan
           | 
        
        
        
        
          Feb
           | 
        
        
        
        
          Mar
           (57)  | 
        
        
        
        
          Apr
           (2)  | 
        
        
        
        
          May
           | 
        
        
        
        
          Jun
           | 
        
        
        
        
          Jul
           | 
        
        
        
        
          Aug
           | 
        
        
        
        
          Sep
           | 
        
        
        
        
          Oct
           | 
        
        
        
        
          Nov
           | 
        
        
        
        
          Dec
           (11)  | 
        
      
| 2007 | 
          Jan
           (8)  | 
        
        
        
        
          Feb
           | 
        
        
        
        
          Mar
           | 
        
        
        
        
          Apr
           (213)  | 
        
        
        
        
          May
           | 
        
        
        
        
          Jun
           | 
        
        
        
        
          Jul
           (70)  | 
        
        
        
        
          Aug
           (53)  | 
        
        
        
        
          Sep
           (18)  | 
        
        
        
        
          Oct
           (17)  | 
        
        
        
        
          Nov
           (12)  | 
        
        
        
        
          Dec
           (11)  | 
        
      
| 2008 | 
          Jan
           | 
        
        
        
        
          Feb
           | 
        
        
        
        
          Mar
           | 
        
        
        
        
          Apr
           (12)  | 
        
        
        
        
          May
           | 
        
        
        
        
          Jun
           (28)  | 
        
        
        
        
          Jul
           (40)  | 
        
        
        
        
          Aug
           | 
        
        
        
        
          Sep
           | 
        
        
        
        
          Oct
           | 
        
        
        
        
          Nov
           | 
        
        
        
        
          Dec
           | 
        
      
| 2009 | 
          Jan
           | 
        
        
        
        
          Feb
           (7)  | 
        
        
        
        
          Mar
           | 
        
        
        
        
          Apr
           (3)  | 
        
        
        
        
          May
           | 
        
        
        
        
          Jun
           | 
        
        
        
        
          Jul
           (6)  | 
        
        
        
        
          Aug
           (5)  | 
        
        
        
        
          Sep
           (3)  | 
        
        
        
        
          Oct
           | 
        
        
        
        
          Nov
           (25)  | 
        
        
        
        
          Dec
           (12)  | 
        
      
| 2010 | 
          Jan
           | 
        
        
        
        
          Feb
           | 
        
        
        
        
          Mar
           | 
        
        
        
        
          Apr
           | 
        
        
        
        
          May
           | 
        
        
        
        
          Jun
           | 
        
        
        
        
          Jul
           | 
        
        
        
        
          Aug
           | 
        
        
        
        
          Sep
           | 
        
        
        
        
          Oct
           | 
        
        
        
        
          Nov
           | 
        
        
        
        
          Dec
           (6)  | 
        
      
| 
     
      
      
      From: SourceForge.net <no...@so...> - 2008-07-11 10:34:04
      
     
   | 
Feature Requests item #2015895, was opened at 2008-07-11 10:34 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=2015895&group_id=75005 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: v1.6.8 Status: Open Resolution: None Priority: 3 Private: No Submitted By: Christer Sandberg (chrisan) Assigned to: Christer Sandberg (chrisan) Summary: More distinct look of the selected tab Initial Comment: If you are not used with the contents of the containers controlled by the tabs you may need to look at the tabs to get a hint about "where you are". The selected tab differs very little to the unselected ones. Specially if the light circumstances are not the best it may be hard to see which of the tabs that is currently selected. A look that makes the selected tab differ more to the unselected would be useful. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=2015895&group_id=75005  | 
| 
     
      
      
      From: SourceForge.net <no...@so...> - 2008-07-05 08:14:15
      
     
   | 
Bugs item #1952663, was opened at 2008-04-27 10:52 Message generated for change (Settings changed) made by chrisan You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542642&aid=1952663&group_id=75005 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: All platforms Group: v1.6.9 >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Christer Sandberg (chrisan) Assigned to: Christer Sandberg (chrisan) Summary: Right click in listbox does not set focus Initial Comment: Right click in a list box that is right clickable and that do not have focus will not move focus to that list making the right click fail. Moving focus using other means (e.g. tabbing or left click) will make right click work. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542642&aid=1952663&group_id=75005  | 
| 
     
      
      
      From: SourceForge.net <no...@so...> - 2008-07-05 08:13:26
      
     
   | 
Bugs item #2011195, was opened at 2008-07-05 08:06 Message generated for change (Settings changed) made by chrisan You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542642&aid=2011195&group_id=75005 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: All platforms Group: v1.6.9 >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Christer Sandberg (chrisan) Assigned to: Christer Sandberg (chrisan) Summary: Progress bar update problem Initial Comment: In the last version of CGUI, when calling UpdateProgressValue() with a value that is bigger than the previous it will be updated on screen (no need to call Refresh()), but not if the value is smaller. BTW: The docs does not say anything at all about refreshing. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542642&aid=2011195&group_id=75005  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-07-05 08:10:46
      
     
   | 
Update of /cvsroot/cgui/cgui/docs In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv483/docs Modified Files: Tag: Branch_CGUI_1-6-7 cgui._tx changes._tx thanks._tx Log Message: Fixed bug 2011195 Index: thanks._tx =================================================================== RCS file: /cvsroot/cgui/cgui/docs/thanks._tx,v retrieving revision 1.4.2.4.2.33 retrieving revision 1.4.2.4.2.34 diff -C2 -d -r1.4.2.4.2.33 -r1.4.2.4.2.34 *** thanks._tx 11 Jun 2008 18:52:12 -0000 1.4.2.4.2.33 --- thanks._tx 5 Jul 2008 08:10:41 -0000 1.4.2.4.2.34 *************** *** 46,57 **** <ul> <li> - <li> Laze Ristoski spotted some bugs and feature requests. <li> ! M�rcio A. Pacheco contributed Portuguese translation of dialog texts. <li> ! Jesse Brockmann contributeed with bugfixes. <li> Rafal Szyja (<email>raf...@po...</a>) contributed Polish --- 46,56 ---- <ul> <li> <li> Laze Ristoski spotted some bugs and feature requests. <li> ! Márcio A. Pacheco contributed Portuguese translation of dialog texts. <li> ! Jesse Brockmann contributed with bugfixes. <li> Rafal Szyja (<email>raf...@po...</a>) contributed Polish *************** *** 62,66 **** translation of dialog texts. <li> ! Ferenc Havr�nek contributed Hungarian translation of dialog texts. <li> --- 61,65 ---- translation of dialog texts. <li> ! Ferenc Havránek contributed Hungarian translation of dialog texts. <li> Index: cgui._tx =================================================================== RCS file: /cvsroot/cgui/cgui/docs/cgui._tx,v retrieving revision 1.4.2.7.2.49 retrieving revision 1.4.2.7.2.50 diff -C2 -d -r1.4.2.7.2.49 -r1.4.2.7.2.50 *** cgui._tx 11 Jun 2008 18:52:11 -0000 1.4.2.7.2.49 --- cgui._tx 5 Jul 2008 08:10:41 -0000 1.4.2.7.2.50 *************** *** 1129,1133 **** @xref AddProgressBar @xref MkProgressWindow ! Updates the value of the progress bar `id'.<br> Returns 1 on sucess, 0 if `id' does not exist or does not refer to a progress object. --- 1129,1134 ---- @xref AddProgressBar @xref MkProgressWindow ! Updates the value of the progress bar `id'. The bar will updated on the ! screen<br> Returns 1 on sucess, 0 if `id' does not exist or does not refer to a progress object. Index: changes._tx =================================================================== RCS file: /cvsroot/cgui/cgui/docs/changes._tx,v retrieving revision 1.4.2.9.2.67 retrieving revision 1.4.2.9.2.68 diff -C2 -d -r1.4.2.9.2.67 -r1.4.2.9.2.68 *** changes._tx 14 Jun 2008 14:16:21 -0000 1.4.2.9.2.67 --- changes._tx 5 Jul 2008 08:10:41 -0000 1.4.2.9.2.68 *************** *** 42,45 **** --- 42,47 ---- <ul> <li> + Fixed bug 2011195 "Progress bar update problem" + <li> Added feature 1993917 "Mouse wheel support in text box" <li>  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-07-05 08:10:46
      
     
   | 
Update of /cvsroot/cgui/cgui/src In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv483/src Modified Files: Tag: Branch_CGUI_1-6-7 obprogr.c obtext.c Log Message: Fixed bug 2011195 Index: obtext.c =================================================================== RCS file: /cvsroot/cgui/cgui/src/obtext.c,v retrieving revision 1.1.2.3.2.10 retrieving revision 1.1.2.3.2.11 diff -C2 -d -r1.1.2.3.2.10 -r1.1.2.3.2.11 *** obtext.c 14 Jun 2008 14:16:22 -0000 1.1.2.3.2.10 --- obtext.c 5 Jul 2008 08:10:42 -0000 1.1.2.3.2.11 *************** *** 591,595 **** } - /* Application interface: */ --- 591,594 ---- Index: obprogr.c =================================================================== RCS file: /cvsroot/cgui/cgui/src/obprogr.c,v retrieving revision 1.1.4.1 retrieving revision 1.1.4.2 diff -C2 -d -r1.1.4.1 -r1.1.4.2 *** obprogr.c 25 Nov 2007 18:41:03 -0000 1.1.4.1 --- obprogr.c 5 Jul 2008 08:10:42 -0000 1.1.4.2 *************** *** 80,102 **** } ! static int FetchData(t_object *b) ! { ! t_progressbar *pb; ! int prev_x; ! if (data_available) { ! data_available = 0; ! if (transfer_buffer > 100U) ! return 0; ! pb = b->appdata; ! pb->per = transfer_buffer; ! prev_x = pb->x; ! pb->x = pb->w * pb->per / 100; ! SetBlitLimit(prev_x+1, FRAMEW, pb->x, b->y2 - b->y1 - FRAMEW); ! b->tf->Refresh(b); ! return 1; } ! return 0; } static void ActionWrapper(void *data) --- 80,109 ---- } ! static int FetchData(t_object *b) ! { ! t_progressbar *pb; ! int prev_x, x1, x2; ! if (data_available) { ! data_available = 0; ! if (transfer_buffer > 100U) ! return 0; ! pb = b->appdata; ! pb->per = transfer_buffer; ! prev_x = pb->x; ! pb->x = pb->w * pb->per / 100; ! if (prev_x < pb->x) { ! x1 = prev_x+1; ! x2 = pb->x; ! } else { ! x2 = prev_x+1; ! x1 = pb->x; } ! SetBlitLimit(x1, FRAMEW, x2, b->y2 - b->y1 - FRAMEW); ! b->tf->Refresh(b); ! return 1; } + return 0; + } static void ActionWrapper(void *data)  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-07-05 08:10:46
      
     
   | 
Update of /cvsroot/cgui/cgui/include In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv483/include Modified Files: Tag: Branch_CGUI_1-6-7 cgui.h Log Message: Fixed bug 2011195 Index: cgui.h =================================================================== RCS file: /cvsroot/cgui/cgui/include/cgui.h,v retrieving revision 1.5.2.7.2.44 retrieving revision 1.5.2.7.2.45 diff -C2 -d -r1.5.2.7.2.44 -r1.5.2.7.2.45 *** cgui.h 11 Jun 2008 18:52:13 -0000 1.5.2.7.2.44 --- cgui.h 5 Jul 2008 08:10:42 -0000 1.5.2.7.2.45 *************** *** 26,31 **** #define CGUI_VERSION_PATCH 26 #define CGUI_VERSION_STRING "1.6.26" ! #define CGUI_DATE 20080427 /* yyyymmdd */ ! #define CGUI_DATE_STRING "Apr 27, 2008" /* Init */ --- 26,31 ---- #define CGUI_VERSION_PATCH 26 #define CGUI_VERSION_STRING "1.6.26" ! #define CGUI_DATE 20080705 /* yyyymmdd */ ! #define CGUI_DATE_STRING "Jul 05, 2008" /* Init */  | 
| 
     
      
      
      From: SourceForge.net <no...@so...> - 2008-07-05 08:06:38
      
     
   | 
Bugs item #2011195, was opened at 2008-07-05 08:06 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542642&aid=2011195&group_id=75005 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: All platforms Group: v1.6.9 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Christer Sandberg (chrisan) Assigned to: Christer Sandberg (chrisan) Summary: Progress bar update problem Initial Comment: In the last version of CGUI, when calling UpdateProgressValue() with a value that is bigger than the previous it will be updated on screen (no need to call Refresh()), but not if the value is smaller. BTW: The docs does not say anything at all about refreshing. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542642&aid=2011195&group_id=75005  | 
| 
     
      
      
      From: SourceForge.net <no...@so...> - 2008-06-15 07:56:17
      
     
   | 
Feature Requests item #1993917, was opened at 2008-06-14 14:14 Message generated for change (Settings changed) made by chrisan You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=1993917&group_id=75005 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Christer Sandberg (chrisan) Assigned to: Christer Sandberg (chrisan) Summary: Mouse wheel support in text box Initial Comment: Using the mouse wheel for scrolling works in list boxes but not in text boxes. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=1993917&group_id=75005  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-06-14 14:16:27
      
     
   | 
Update of /cvsroot/cgui/cgui/src In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv2908/src Modified Files: Tag: Branch_CGUI_1-6-7 obtext.c Log Message: Added feature 1993917 Mouse wheel support in text box Index: obtext.c =================================================================== RCS file: /cvsroot/cgui/cgui/src/obtext.c,v retrieving revision 1.1.2.3.2.9 retrieving revision 1.1.2.3.2.10 diff -C2 -d -r1.1.2.3.2.9 -r1.1.2.3.2.10 *** obtext.c 11 Jun 2008 19:02:47 -0000 1.1.2.3.2.9 --- obtext.c 14 Jun 2008 14:16:22 -0000 1.1.2.3.2.10 *************** *** 11,14 **** --- 11,17 ---- #include "cgui/mem.h" + #include "obtext.h" + #include "mouse.h" + #include "mstates.h" #include "window.h" #include "node.h" *************** *** 17,21 **** #include "font.h" #include "object.h" - #include "obtext.h" #include "obtext.ht" #include "labldata.h" --- 20,23 ---- *************** *** 60,67 **** --- 62,75 ---- int br; int dirty; + + /* For the highlighting. */ int hilite; int hrow; int bgcolor; int textcolor; + + /* For scrolling with the mouse wheel. */ + int over_event_id; + int prevz; } t_textob; *************** *** 542,545 **** --- 550,595 ---- } + static void HandleMouseWheel(void *data) + { + t_object *b=data; + t_textob *to; + int x, y, z, diff; + + to = b->appdata; + _CguiMousePos(&x, &y, &z); + diff = z - to->prevz; + if (diff != 0) { + to->prevz = z; + to->sti -= diff; + if (to->sti > to->n - 1) { + to->sti = to->n - 1; + } else if (to->sti < 0) { + to->sti = 0; + } + Refresh(b->id); + to->pos = to->sti*to->rh; + NotifyBrowser(to->br, to->rh, to->n*to->rh); + Refresh(to->br); + } + to->over_event_id = _GenEventOfCgui(HandleMouseWheel, b, 100, b->id); + } + + static void OverTextBox(t_object *b) + { + t_textob *to; + int mx, my, mz; + + to = b->appdata; + Refresh(b->id); + if (b->state == MS_OVER) { + _CguiMousePos(&mx, &my, &mz); + to->prevz = mz; + HandleMouseWheel(b); + } else { + _KillEventOfCgui(to->over_event_id); + } + } + + /* Application interface: */ *************** *** 571,575 **** } else b = CreateObject(x, y, opwin->win->opnode); - b->Over = StubOb; to = GetMem0(t_textob, 1); to->tf = b->tf; --- 621,624 ---- *************** *** 597,600 **** --- 646,650 ---- GenerateTextLayout(b, s); if (to->browsed) { + b->Over = OverTextBox; to->br = MkVerticalBrowser(RIGHT|FILLSPACE|VERTICAL, BrCallBack, to, &to->pos); nd->ob->tf->DoJoinTabChain(nd->ob);  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-06-14 14:16:26
      
     
   | 
Update of /cvsroot/cgui/cgui/docs In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv2908/docs Modified Files: Tag: Branch_CGUI_1-6-7 changes._tx Log Message: Added feature 1993917 Mouse wheel support in text box Index: changes._tx =================================================================== RCS file: /cvsroot/cgui/cgui/docs/changes._tx,v retrieving revision 1.4.2.9.2.66 retrieving revision 1.4.2.9.2.67 diff -C2 -d -r1.4.2.9.2.66 -r1.4.2.9.2.67 *** changes._tx 11 Jun 2008 19:02:46 -0000 1.4.2.9.2.66 --- changes._tx 14 Jun 2008 14:16:21 -0000 1.4.2.9.2.67 *************** *** 42,45 **** --- 42,47 ---- <ul> <li> + Added feature 1993917 "Mouse wheel support in text box" + <li> Fixed bug 1991153 "Annoying error message in textbox." <li>  | 
| 
     
      
      
      From: SourceForge.net <no...@so...> - 2008-06-14 14:14:34
      
     
   | 
Feature Requests item #1993917, was opened at 2008-06-14 14:14 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=1993917&group_id=75005 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Christer Sandberg (chrisan) Assigned to: Christer Sandberg (chrisan) Summary: Mouse wheel support in text box Initial Comment: Using the mouse wheel for scrolling works in list boxes but not in text boxes. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=1993917&group_id=75005  | 
| 
     
      
      
      From: SourceForge.net <no...@so...> - 2008-06-11 19:03:26
      
     
   | 
Feature Requests item #1991153, was opened at 2008-06-11 18:57 Message generated for change (Settings changed) made by chrisan You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=1991153&group_id=75005 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Christer Sandberg (chrisan) >Assigned to: Christer Sandberg (chrisan) Summary: Annoying error message in textbox. Initial Comment: If the textbox is in FILE_LOAD mode, and there is yet not known which file to load (e.g. because the user has not selected one) one have to pass the empty string when creating the box. Then there will be an error message because it tries to load a file named "". ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=1991153&group_id=75005  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-06-11 19:02:50
      
     
   | 
Update of /cvsroot/cgui/cgui/src In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv27703/src Modified Files: Tag: Branch_CGUI_1-6-7 obtext.c Log Message: Fixed bug 1991153 and removed debug prinouts Index: obtext.c =================================================================== RCS file: /cvsroot/cgui/cgui/src/obtext.c,v retrieving revision 1.1.2.3.2.8 retrieving revision 1.1.2.3.2.9 diff -C2 -d -r1.1.2.3.2.8 -r1.1.2.3.2.9 *** obtext.c 11 Jun 2008 18:52:13 -0000 1.1.2.3.2.8 --- obtext.c 11 Jun 2008 19:02:47 -0000 1.1.2.3.2.9 *************** *** 415,419 **** Release(to->s); ! if (to->load) { fp = pack_fopen(new_string, "rt"); if (fp) { --- 415,419 ---- Release(to->s); ! if (to->load && *new_string) { fp = pack_fopen(new_string, "rt"); if (fp) {  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-06-11 19:02:50
      
     
   | 
Update of /cvsroot/cgui/cgui/examples In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv27703/examples Modified Files: Tag: Branch_CGUI_1-6-7 05txtbox.c Log Message: Fixed bug 1991153 and removed debug prinouts Index: 05txtbox.c =================================================================== RCS file: /cvsroot/cgui/cgui/examples/05txtbox.c,v retrieving revision 1.1.2.5.2.3 retrieving revision 1.1.2.5.2.4 diff -C2 -d -r1.1.2.5.2.3 -r1.1.2.5.2.4 *** 05txtbox.c 11 Jun 2008 18:52:12 -0000 1.1.2.5.2.3 --- 05txtbox.c 11 Jun 2008 19:02:46 -0000 1.1.2.5.2.4 *************** *** 14,29 **** } - int xid, yy; - static void getline(void* data) - { - FONT *f = GetCguiFont(); - const char* tx; - int h = text_height(f); - tx = TextboxGetHighlightedText(xid); - if (tx) - textout_ex(screen, f, tx, 10, yy+=h, cgui_white, -1); - TextboxScrollDownOneLine(xid); - } - static void shut_down(void *data) { --- 14,17 ---- *************** *** 87,95 **** "will take the string for the name of a file, loads that file and displays " "the contents of it.", 220, 0, TB_LINEFEED_); - xid=AddTextBox(DOWNLEFT, "road.tap", 200, 14, TB_TEXTFILE|TB_FRAMESINK|TB_PREFORMAT|3); - TextboxHighlighting(xid, cgui_blue, -1, 2); AddButton(DOWNLEFT, "\33E~xit", shut_down, NULL); AddButton(RIGHT, "Show code", show_code, NULL); - AddButton(RIGHT, "next", getline, NULL); DisplayWin(); } --- 75,80 ----  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-06-11 19:02:50
      
     
   | 
Update of /cvsroot/cgui/cgui/docs In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv27703/docs Modified Files: Tag: Branch_CGUI_1-6-7 changes._tx Log Message: Fixed bug 1991153 and removed debug prinouts Index: changes._tx =================================================================== RCS file: /cvsroot/cgui/cgui/docs/changes._tx,v retrieving revision 1.4.2.9.2.65 retrieving revision 1.4.2.9.2.66 diff -C2 -d -r1.4.2.9.2.65 -r1.4.2.9.2.66 *** changes._tx 11 Jun 2008 18:52:12 -0000 1.4.2.9.2.65 --- changes._tx 11 Jun 2008 19:02:46 -0000 1.4.2.9.2.66 *************** *** 42,45 **** --- 42,47 ---- <ul> <li> + Fixed bug 1991153 "Annoying error message in textbox." + <li> Fixed bug 1991139 "Restricted path does not restrict completely" <li>  | 
| 
     
      
      
      From: SourceForge.net <no...@so...> - 2008-06-11 18:57:19
      
     
   | 
Feature Requests item #1991153, was opened at 2008-06-11 18:57 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=1991153&group_id=75005 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Christer Sandberg (chrisan) Assigned to: Nobody/Anonymous (nobody) Summary: Annoying error message in textbox. Initial Comment: If the textbox is in FILE_LOAD mode, and there is yet not known which file to load (e.g. because the user has not selected one) one have to pass the empty string when creating the box. Then there will be an error message because it tries to load a file named "". ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=1991153&group_id=75005  | 
| 
     
      
      
      From: SourceForge.net <no...@so...> - 2008-06-11 18:54:25
      
     
   | 
Feature Requests item #1991122, was opened at 2008-06-11 18:35 Message generated for change (Settings changed) made by chrisan You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=1991122&group_id=75005 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) >Assigned to: Christer Sandberg (chrisan) Summary: A new flag to the file selector Initial Comment: An additional flag to the file selector that prevents the file filter to be modified. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=1991122&group_id=75005  | 
| 
     
      
      
      From: SourceForge.net <no...@so...> - 2008-06-11 18:53:32
      
     
   | 
Bugs item #1991139, was opened at 2008-06-11 18:47 Message generated for change (Settings changed) made by chrisan You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542642&aid=1991139&group_id=75005 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Dos Group: v1.6.7 >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Christer Sandberg (chrisan) Assigned to: Christer Sandberg (chrisan) Summary: Restricted path does not restrict completely Initial Comment: The disk drive selection box in DOS/Windows makes it possible to enter directories on other disk drives also when there is a restricted path set. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542642&aid=1991139&group_id=75005  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-06-11 18:52:19
      
     
   | 
Update of /cvsroot/cgui/cgui/src In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv23332/src Modified Files: Tag: Branch_CGUI_1-6-7 filebrow.c files.c files.h obtext.c Log Message: fixed bug 1991139 and added feature 1991122 Index: files.c =================================================================== RCS file: /cvsroot/cgui/cgui/src/files.c,v retrieving revision 1.1.4.8 retrieving revision 1.1.4.9 diff -C2 -d -r1.1.4.8 -r1.1.4.9 *** files.c 7 Oct 2007 16:37:18 -0000 1.1.4.8 --- files.c 11 Jun 2008 18:52:13 -0000 1.1.4.9 *************** *** 1,2481 **** ! /* Module FILES.C ! Contains all the basic functions for the file browser. ! */ ! #include <time.h> ! #include <string.h> ! #include <ctype.h> ! #include <stdio.h> ! #include <allegro.h> ! #include <allegro/internal/aintern.h> ! #if (defined ALLEGRO_DOS) || (defined ALLEGRO_UNIX) [...4937 lines suppressed...] ! return dirinfo->dobjs[dirinfo->itfile]; ! } ! } ! return NULL; ! } ! ! extern t_dirinfo *DiskObjectGetDirInfo(t_diskobj *dobj) ! { ! return dobj->dirinfo; ! } ! /* ! void print_file_tree(t_dirinfo *dirinfo) ! { ! int i; ! if (dirinfo) { ! printf("%s\n",dirinfo->dobj->name); ! for (i = 0; i < dirinfo->n; i++) ! print_file_tree(dirinfo->dobjs[i]->dirinfo); ! } ! }*/ Index: files.h =================================================================== RCS file: /cvsroot/cgui/cgui/src/files.h,v retrieving revision 1.1.1.1.4.1 retrieving revision 1.1.1.1.4.2 diff -C2 -d -r1.1.1.1.4.1 -r1.1.1.1.4.2 *** files.h 25 Sep 2005 17:10:54 -0000 1.1.1.1.4.1 --- files.h 11 Jun 2008 18:52:13 -0000 1.1.1.1.4.2 *************** *** 1,237 **** ! #ifndef FILES_H ! #define FILES_H ! ! struct DATAFILE; ! struct FONT; ! typedef struct t_diskobj t_diskobj; ! typedef struct t_dirinfo t_dirinfo; ! typedef struct t_root t_root; ! ! /* In general (unless other is specified) all path strings, either these are ! inputs or values produced by the file-functions, have the cgui-printable ! character set of the path, not the character set received from the file ! system. On normal platforms this will of course be the same, but in ! win/dos the national characters may differ. */ ! ! /* Will append file to path using by default using the file systems path separator. If path_contain_dot_dat is true it is assumed that the path ! contains a valid Allegro ".dat"-file, optionally at the end (detected by not finding a "#" in the path). In the latter case '#' will be used ! as separator instead of the default. */ ! extern char *MergePathAndFile(const char *path, const char *file, int path_contain_dot_dat); ! ! /* NOTE! returns a string with the character set of the file-system. */ ! extern char *CheckSelectionPath(const char *path, const char *file, int *isdir, int isdat); ! extern void AppendFileDelimiter(char *path); ! extern char *EndOfFirstPart(char *path); ! extern char *FixPath(const char *path); ! ! /* Disk unit handling in DOS/Win */ ! #if (defined ALLEGRO_DOS) || (defined ALLEGRO_WINDOWS) ! extern char **GetDiskList(int *nodisks); ! extern void DestroyDisklist(char **list, int n); ! extern int GetDiskIndex(char *path, char **disklist, int n); ! #endif ! ! /* Direct file system operations. */ ! extern int MakeDirectory(t_dirinfo *dirinfo, const char *dir, int mkdatafile, int pack, const char *pwd); ! extern int RemoveDiskObject(t_diskobj *dobj); ! /* NOTE! requires a string with the character set of the file-system. */ ! extern int RemoveDiskObjectByName(const char *path, const char *filename, int isdat); ! #ifdef ALLEGRO_UNIX ! extern int AdjustPermissions(const char *path, int mode); ! #else ! extern int AdjustAttributes(const char *path, int prevattrib, ! int attr_h, int attr_r, int attr_s, int attr_a); ! #endif ! extern void RenameDiskObject(const char *newname, t_diskobj *dobj); ! extern int PasteADirectory(t_dirinfo *dirinfo, const char *srcdir, const char *name, const char *destdir, int isaldat); ! extern int PasteASingleFile(const char *srcdir, const char *filename, int size, const char *destdir, int check_over_write); ! /* Returncodes from `PasteASingleFile': */ ! #define PASTE_OK 0 ! #define PASTE_CHECK_ERROR 1 ! #define PASTE_READ_ERROR 2 ! #define PASTE_WRITE_ERROR 3 ! ! /* Operations on t_diskobj data objects */ ! extern int IsDirectoryObject(t_diskobj *dobj); ! extern t_dirinfo *GetGrandParent(t_diskobj *dobj); ! extern t_dirinfo *GetParent(t_diskobj *dobj); ! ! extern void *DiskObjectGetUserData(t_diskobj *dobj); ! extern long DiskObjectSize(t_diskobj *dobj); ! extern const char *DiskObjectGetImage(t_diskobj *dobj); ! extern const char *DiskObjectName(t_diskobj *dobj); ! extern const char *DiskObjectExt(t_diskobj *dobj); ! /* NOTE DiskObjectModeString returns pointer to static memory. */ ! extern const char *DiskObjectModeString(t_diskobj *dobj); ! extern void DiskObjectTimeString(char *s, t_diskobj *dobj); ! extern int DiskObjectDatafileObjectType(t_diskobj *dobj); ! extern const struct FONT *DiskObjectGetFont(t_diskobj *dobj); ! ! /* Returns the directory info of the disk object `dobj' in case it is a directory (or datafile), else NULL. */ ! extern t_dirinfo *DiskObjectGetDirInfo(t_diskobj *dobj); ! ! /* Returns true if `dobj' is a data file object (i.e. it is a part of an Allegro data file. */ ! extern void *DiskObjectDatafileObject(t_diskobj *dobj); ! ! /* Returns true if `dobj' is the special "../" entry. */ ! extern int IsUpDir(t_diskobj *dobj); ! ! extern int DiskObjectMode(t_diskobj *dobj); ! ! /* Sets the exapnded state of a disk object. */ ! extern void DiskObjectSetExpanded(t_diskobj *dobj, int state); ! ! /* Returns the exapnded state of a disk object. */ ! extern int DiskObjectGetExpanded(t_diskobj *dobj); ! ! /* Returns true if `dobj' is in the current path of the tree. */ ! extern int DiskObjectIsInDirectoryPath(t_dirinfo *dirinfo, t_diskobj *dobj); ! ! /* Returns true if `dobj' is an Allegro data file object (within a datafile). */ ! extern int DiskObjectIsDatafileObject(t_diskobj *dobj); ! ! /* Returns true if `dobj' is an Allegro data file in the filessytem (i.e. a ".dat" file that has approved to be a datafile). */ ! extern int DiskObjectIsDotDat(t_diskobj *dobj); ! ! extern const char *DiskObjectDatSource(t_diskobj *dobj); ! extern int DiskObjectIsPacked(t_diskobj *dobj); ! /* NOTE: the paths to `DiskObjectCreateDat' and from `DiskObjectGetFullPathDos' shall be/are DOS character set in case of DOS platform. */ ! extern t_diskobj *DiskObjectCreateDat(const char *name, int attrib, t_dirinfo *dirinfo, long size, int type, struct DATAFILE *dat, ! const struct tm *t, const char *orig); ! ! /* Returns the full path of dobj. */ ! extern char *DiskObjectGetFullPathDos(t_diskobj *dobj); ! ! /* Returns the path to the directory of `dobj'. */ ! extern char *DiskObjectGetLocation(t_diskobj *dobj); ! ! /* Returns true if `dobj' is a disk object within a datafile. */ ! extern int DiskObjectIsInDatafile(t_diskobj *dobj); ! ! /* Operations on t_dirinfo data objects */ ! #define DO_SORT_TEXT 0 ! #define DO_SORT_NAME 1 ! #define DO_SORT_TIME 2 ! #define DO_SORT_SIZE 3 ! #define DO_SORT_ATTRIB 4 ! ! extern int GetFileListIndex(t_dirinfo *dirinfo, const char *name); ! ! /* Returns true if dirinfo represents a ".dat"-datafile (i.e. the list in it is a list of datafile-objects at top level */ ! extern int IsFileDotDat(t_dirinfo *dirinfo); ! ! /* Returns true if dirinfo represents a ".dat"-datafile or an object that is a of type DAT_FILE. In either case this means that iterating dirinfo gets ! datafile objects. */ ! extern int IsDataFileList(t_dirinfo *dirinfo); ! ! /* Returns the DATAFILE object that this dirinfo has loaded. Valid if `IsDataFileList' is true, else it returns NULL. */ ! extern struct DATAFILE *GetDataFile(t_dirinfo *dirinfo); ! ! /* Returns the full path of the directory represented by `dirinfo'. */ ! extern const char *DirInfoGetPath(t_dirinfo *dirinfo); ! ! /* Returns the size of the directory represented by `dirinfo', as the sum of the sizes of its file entries. */ ! extern int DirInfoGetTotalSize(t_dirinfo *dirinfo); ! ! /* Returns 1 if it is known that there are subdirectories in `dirinfo' else 0. I.e. the directory is loaded and there was at least one directory when ! last loaded and the chace is not dirty. */ ! extern int DirInfoHasSubdirs(t_dirinfo *dirinfo); ! ! /* Returns the number sub directories. */ ! extern int DirInfoGetNrOfSubdirs(t_dirinfo *dirinfo); ! ! /* Returns the number of file entries within the directory represented by `dirinfo'. */ ! extern int DirInfoGetNrOfDiskObjects(t_dirinfo *dirinfo); ! ! /* Returns the file entry object of this directory (i.e. of `dirinfo'). */ ! extern t_diskobj *DirInfoGetDiskObject(t_dirinfo *dirinfo); ! ! /* Accessor to the file entry at index 'i' (according to the current sorting) in a directory (all loaded entries, including subdirectories). */ ! extern t_diskobj *DirInfoGetDiskObjectAt(t_dirinfo *dirinfo, int i); ! ! /* Iterator functions over the loaded entries in a directory. NOTE: iterations can't be nested over the same directory since there is one ! entry-iterator in each dirinfo. */ ! extern t_diskobj *DirInfoGetFirstDiskObject(t_dirinfo *dirinfo); ! extern t_diskobj *DirInfoGetNextDiskObject(t_dirinfo *dirinfo); ! ! /* Iterator functions over the loaded files in a directory. NOTE: iterations can't be nested over the same directory since there is one ! file-iterator in each dirinfo. */ ! extern t_diskobj *DirInfoGetFirstFile(t_dirinfo *dirinfo); ! extern t_diskobj *DirInfoGetNextFile(t_dirinfo *dirinfo); ! ! /* Iterator functions over the loaded subdirectories in a directory. NOTE: iterations can't be nested over the same directory since there is one ! directory-iterator in each dirinfo. The parameter `dirinfo' should for both functions be a pointer to the directory to iterate. The return value ! is a pointer to a sub-directory. */ ! extern t_diskobj *DiskObjectGetFirstDirectory(t_diskobj *dobj); ! extern t_diskobj *DiskObjectGetNextDirectory(t_diskobj *dobj); ! ! /* Objects are sorted according to the current sorting. When the current sorting is changed all cached directories will be resorted. So ! this function should not be needed ... */ ! extern void SortDiskObjects(t_dirinfo *dirinfo); ! ! /* Create a virtual root data structure. The root directory of the file system will however not be loaded. If `LoadProgressCallBack' is not NULL it ! will be called with `data' with time intervals of `callback_time_interval' during subsequent loads. The second parameter should be one of ! the DL_* specified below. The call back will be called also for some certain check points of the loads as indicated by the macro name. ! The `data' pointer can be obtained also by `DiskObjectGetUserData'. The `dirinfo' pointer will point to the directory that is loaded. */ ! extern t_root *CreateRoot(void (*LoadProgressCallBack)(void *data, int reason, t_dirinfo *dirinfo), void *data, int callback_time_interval); ! ! /* Returns a pointer the dirinfo data structure of the file system root. */ ! extern t_dirinfo *RootGetDirInfo(t_root *root); ! ! /* Destroys the root and its directory tree. Note that not only the `root' pointer will be invalid after the call, also all pointer returned by the ! below "Loaders" do. Use it when you are done with everything. */ ! extern void DestroyDirectoryTree(t_root *root); ! ! /* Below are 4 "loader" functions. They load the files from a directory (or may use the cache in case it is available) and can be used in various ! contexts. Common for all is that the callback installed by `CreateRoot' will get a dirinfo passed. */ ! ! /* Returns a pointer to the dirinfo structure representing the the directory at path `path'. In case the directory info is already loaded into ! the cached directory tree, this will be re-used, else it will load it from disk and cache all the directories along the path. It will always ! return a valid pointer. The `dirinfo' pointer passed to the call-back will be the directory that is currently loading when the call-back is ! called. Note that this may vary between calls as the loading along the path progresses. It the specified path is not a valid directory the ! closest existing ancestor will be loaded instead. */ ! extern t_dirinfo *DirInfoLoadDirectoryFromPath(t_root *root, const char *path); ! ! /* Reloads the directory from disk (the cache is not used) that the dirinfo structure pointed to by `*dirinfop' represents. This can be useful in ! case the contents of the disk might have been changed. In case the directory of the dirinfo structure pointed to by `*dirinfop' does not ! exist any longer, then the pointer pointed to by dirinfop will be updated and set to point to a dirinfo structure that represents the closest ! existing ancestor directory, and the return value will be 0, else 1. */ ! extern int DirInfoReLoadDirectory(t_dirinfo **dirinfop); ! ! /* Returns the directory info of the parent directory to `dirinfo' or, in case it is the root, it will return `dirinfo'. If the cache is fresh it will ! use it. If reloading is necessary because the cache is not fresh, then it will call DirInfoReLoadDirectory, thus a NULL pointer as return value is ! possible. */ ! extern t_dirinfo *DirInfoGetUpDirectory(t_dirinfo *dirinfo); ! ! /* Will return a pointer to the directory info of the direcory associated with `dobj'. In case `dobj' is not a directory it will return a pointer to ! the closest ancestor. */ ! extern t_dirinfo *DirInfoLoadDirectoryFromDiskObject(t_diskobj *dobj); ! ! /* The following are reason parameters to the progress call-back that will be called during loading, if not NULL. */ ! #define DL_INTERVAL_ELAPSED 0 /* Call reason is that one time interval has elapsed. */ ! #define DL_LOAD_STARTED 1 /* Call reason is that loading has just started (usually the file list will be empty). */ ! #define DL_DIRECTORIES_FINISHED 2 /* Call reason is that the directories portion of the entries has been loaded. */ ! #define DL_DATAFILES_LOADED 3 /* Call reason is that all potential datafiles has been loaded (omitted if datafiles are not accepted). */ ! #define DL_DATAFILES_CHECKED 4 /* Call reason is that all datafiles has been verified (omitted if datafiles are not accepted). */ ! #define DL_FILES_LOADED 5 /* Call reason is that all normal files (non-directories) has been loaded (only for unix, flags are still to be loaded). */ ! #define DL_LOAD_FINISHED 6 /* Call reason is that all disk activity has been finished (but not yet sorted). */ ! #define DL_DIRECTORY_END 7 /* Call reason is that everything is finished in the current directory, but there are more directories to be loaded. */ ! #define DL_END 8 /* Call reason is that everything is finished. */ ! ! /* Set the mode for subsequent file loading. If `mode' is non-0 all files will be loaded, else all except hidden files and system files will be ! loaded. In case of unix "hidden" means files starting with '.'. Reloading is not necessary. */ ! extern void SetLoadHiddenSystem(t_root *root, int mode); ! ! /* Set the mode for subsequent file loading. If `mode' is non-0 all dat-files will be loaded in subsequent loads, else not. To make them available ! in existing directories these need to be reloaded (the cache will be marked as outdated). */ ! extern void SetLoadDat(t_root *root, int mode); ! ! /* Set the masks to be used in subsequent file loading. `masks' should point to a semi-colon separated list of masks, each fulfilling the criterias ! set by allegros directory loading functions (i.e. currently those of file system). To make a new file list available in existing directories these ! need to be reloaded (the cache will be marked as outdated). */ ! extern void SetLoadMasks(t_root *root, const char *masks); ! ! /* Set the sorting used in subsequent file loading. Reloading is not necessary. */ ! extern void SetLoadSorting(t_root *root, int sorting, int descending); ! ! #endif --- 1,237 ---- ! #ifndef FILES_H ! #define FILES_H ! ! struct DATAFILE; ! struct FONT; ! typedef struct t_diskobj t_diskobj; ! typedef struct t_dirinfo t_dirinfo; ! typedef struct t_root t_root; ! ! /* In general (unless other is specified) all path strings, either these are ! inputs or values produced by the file-functions, have the cgui-printable ! character set of the path, not the character set received from the file ! system. On normal platforms this will of course be the same, but in ! win/dos the national characters may differ. */ ! ! /* Will append file to path using by default using the file systems path separator. If path_contain_dot_dat is true it is assumed that the path ! contains a valid Allegro ".dat"-file, optionally at the end (detected by not finding a "#" in the path). In the latter case '#' will be used ! as separator instead of the default. */ ! extern char *MergePathAndFile(const char *path, const char *file, int path_contain_dot_dat); ! ! /* NOTE! returns a string with the character set of the file-system. */ ! extern char *CheckSelectionPath(const char *path, const char *file, int *isdir, int isdat); ! extern void AppendFileDelimiter(char *path); ! extern char *EndOfFirstPart(char *path); ! extern char *FixPath(const char *path); ! ! /* Disk unit handling in DOS/Win */ ! #if (defined ALLEGRO_DOS) || (defined ALLEGRO_WINDOWS) ! extern char **GetDiskList(int *nodisks, const char *rpath); ! extern void DestroyDisklist(char **list, int n); ! extern int GetDiskIndex(char *path, char **disklist, int n); ! #endif ! ! /* Direct file system operations. */ ! extern int MakeDirectory(t_dirinfo *dirinfo, const char *dir, int mkdatafile, int pack, const char *pwd); ! extern int RemoveDiskObject(t_diskobj *dobj); ! /* NOTE! requires a string with the character set of the file-system. */ ! extern int RemoveDiskObjectByName(const char *path, const char *filename, int isdat); ! #ifdef ALLEGRO_UNIX ! extern int AdjustPermissions(const char *path, int mode); ! #else ! extern int AdjustAttributes(const char *path, int prevattrib, ! int attr_h, int attr_r, int attr_s, int attr_a); ! #endif ! extern void RenameDiskObject(const char *newname, t_diskobj *dobj); ! extern int PasteADirectory(t_dirinfo *dirinfo, const char *srcdir, const char *name, const char *destdir, int isaldat); ! extern int PasteASingleFile(const char *srcdir, const char *filename, int size, const char *destdir, int check_over_write); ! /* Returncodes from `PasteASingleFile': */ ! #define PASTE_OK 0 ! #define PASTE_CHECK_ERROR 1 ! #define PASTE_READ_ERROR 2 ! #define PASTE_WRITE_ERROR 3 ! ! /* Operations on t_diskobj data objects */ ! extern int IsDirectoryObject(t_diskobj *dobj); ! extern t_dirinfo *GetGrandParent(t_diskobj *dobj); ! extern t_dirinfo *GetParent(t_diskobj *dobj); ! ! extern void *DiskObjectGetUserData(t_diskobj *dobj); ! extern long DiskObjectSize(t_diskobj *dobj); ! extern const char *DiskObjectGetImage(t_diskobj *dobj); ! extern const char *DiskObjectName(t_diskobj *dobj); ! extern const char *DiskObjectExt(t_diskobj *dobj); ! /* NOTE DiskObjectModeString returns pointer to static memory. */ ! extern const char *DiskObjectModeString(t_diskobj *dobj); ! extern void DiskObjectTimeString(char *s, t_diskobj *dobj); ! extern int DiskObjectDatafileObjectType(t_diskobj *dobj); ! extern const struct FONT *DiskObjectGetFont(t_diskobj *dobj); ! ! /* Returns the directory info of the disk object `dobj' in case it is a directory (or datafile), else NULL. */ ! extern t_dirinfo *DiskObjectGetDirInfo(t_diskobj *dobj); ! ! /* Returns true if `dobj' is a data file object (i.e. it is a part of an Allegro data file. */ ! extern void *DiskObjectDatafileObject(t_diskobj *dobj); ! ! /* Returns true if `dobj' is the special "../" entry. */ ! extern int IsUpDir(t_diskobj *dobj); ! ! extern int DiskObjectMode(t_diskobj *dobj); ! ! /* Sets the exapnded state of a disk object. */ ! extern void DiskObjectSetExpanded(t_diskobj *dobj, int state); ! ! /* Returns the exapnded state of a disk object. */ ! extern int DiskObjectGetExpanded(t_diskobj *dobj); ! ! /* Returns true if `dobj' is in the current path of the tree. */ ! extern int DiskObjectIsInDirectoryPath(t_dirinfo *dirinfo, t_diskobj *dobj); ! ! /* Returns true if `dobj' is an Allegro data file object (within a datafile). */ ! extern int DiskObjectIsDatafileObject(t_diskobj *dobj); ! ! /* Returns true if `dobj' is an Allegro data file in the filessytem (i.e. a ".dat" file that has approved to be a datafile). */ ! extern int DiskObjectIsDotDat(t_diskobj *dobj); ! ! extern const char *DiskObjectDatSource(t_diskobj *dobj); ! extern int DiskObjectIsPacked(t_diskobj *dobj); ! /* NOTE: the paths to `DiskObjectCreateDat' and from `DiskObjectGetFullPathDos' shall be/are DOS character set in case of DOS platform. */ ! extern t_diskobj *DiskObjectCreateDat(const char *name, int attrib, t_dirinfo *dirinfo, long size, int type, struct DATAFILE *dat, ! const struct tm *t, const char *orig); ! ! /* Returns the full path of dobj. */ ! extern char *DiskObjectGetFullPathDos(t_diskobj *dobj); ! ! /* Returns the path to the directory of `dobj'. */ ! extern char *DiskObjectGetLocation(t_diskobj *dobj); ! ! /* Returns true if `dobj' is a disk object within a datafile. */ ! extern int DiskObjectIsInDatafile(t_diskobj *dobj); ! ! /* Operations on t_dirinfo data objects */ ! #define DO_SORT_TEXT 0 ! #define DO_SORT_NAME 1 ! #define DO_SORT_TIME 2 ! #define DO_SORT_SIZE 3 ! #define DO_SORT_ATTRIB 4 ! ! extern int GetFileListIndex(t_dirinfo *dirinfo, const char *name); ! ! /* Returns true if dirinfo represents a ".dat"-datafile (i.e. the list in it is a list of datafile-objects at top level */ ! extern int IsFileDotDat(t_dirinfo *dirinfo); ! ! /* Returns true if dirinfo represents a ".dat"-datafile or an object that is a of type DAT_FILE. In either case this means that iterating dirinfo gets ! datafile objects. */ ! extern int IsDataFileList(t_dirinfo *dirinfo); ! ! /* Returns the DATAFILE object that this dirinfo has loaded. Valid if `IsDataFileList' is true, else it returns NULL. */ ! extern struct DATAFILE *GetDataFile(t_dirinfo *dirinfo); ! ! /* Returns the full path of the directory represented by `dirinfo'. */ ! extern const char *DirInfoGetPath(t_dirinfo *dirinfo); ! ! /* Returns the size of the directory represented by `dirinfo', as the sum of the sizes of its file entries. */ ! extern int DirInfoGetTotalSize(t_dirinfo *dirinfo); ! ! /* Returns 1 if it is known that there are subdirectories in `dirinfo' else 0. I.e. the directory is loaded and there was at least one directory when ! last loaded and the chace is not dirty. */ ! extern int DirInfoHasSubdirs(t_dirinfo *dirinfo); ! ! /* Returns the number sub directories. */ ! extern int DirInfoGetNrOfSubdirs(t_dirinfo *dirinfo); ! ! /* Returns the number of file entries within the directory represented by `dirinfo'. */ ! extern int DirInfoGetNrOfDiskObjects(t_dirinfo *dirinfo); ! ! /* Returns the file entry object of this directory (i.e. of `dirinfo'). */ ! extern t_diskobj *DirInfoGetDiskObject(t_dirinfo *dirinfo); ! ! /* Accessor to the file entry at index 'i' (according to the current sorting) in a directory (all loaded entries, including subdirectories). */ ! extern t_diskobj *DirInfoGetDiskObjectAt(t_dirinfo *dirinfo, int i); ! ! /* Iterator functions over the loaded entries in a directory. NOTE: iterations can't be nested over the same directory since there is one ! entry-iterator in each dirinfo. */ ! extern t_diskobj *DirInfoGetFirstDiskObject(t_dirinfo *dirinfo); ! extern t_diskobj *DirInfoGetNextDiskObject(t_dirinfo *dirinfo); ! ! /* Iterator functions over the loaded files in a directory. NOTE: iterations can't be nested over the same directory since there is one ! file-iterator in each dirinfo. */ ! extern t_diskobj *DirInfoGetFirstFile(t_dirinfo *dirinfo); ! extern t_diskobj *DirInfoGetNextFile(t_dirinfo *dirinfo); ! ! /* Iterator functions over the loaded subdirectories in a directory. NOTE: iterations can't be nested over the same directory since there is one ! directory-iterator in each dirinfo. The parameter `dirinfo' should for both functions be a pointer to the directory to iterate. The return value ! is a pointer to a sub-directory. */ ! extern t_diskobj *DiskObjectGetFirstDirectory(t_diskobj *dobj); ! extern t_diskobj *DiskObjectGetNextDirectory(t_diskobj *dobj); ! ! /* Objects are sorted according to the current sorting. When the current sorting is changed all cached directories will be resorted. So ! this function should not be needed ... */ ! extern void SortDiskObjects(t_dirinfo *dirinfo); ! ! /* Create a virtual root data structure. The root directory of the file system will however not be loaded. If `LoadProgressCallBack' is not NULL it ! will be called with `data' with time intervals of `callback_time_interval' during subsequent loads. The second parameter should be one of ! the DL_* specified below. The call back will be called also for some certain check points of the loads as indicated by the macro name. ! The `data' pointer can be obtained also by `DiskObjectGetUserData'. The `dirinfo' pointer will point to the directory that is loaded. */ ! extern t_root *CreateRoot(void (*LoadProgressCallBack)(void *data, int reason, t_dirinfo *dirinfo), void *data, int callback_time_interval); ! ! /* Returns a pointer the dirinfo data structure of the file system root. */ ! extern t_dirinfo *RootGetDirInfo(t_root *root); ! ! /* Destroys the root and its directory tree. Note that not only the `root' pointer will be invalid after the call, also all pointer returned by the ! below "Loaders" do. Use it when you are done with everything. */ ! extern void DestroyDirectoryTree(t_root *root); ! ! /* Below are 4 "loader" functions. They load the files from a directory (or may use the cache in case it is available) and can be used in various ! contexts. Common for all is that the callback installed by `CreateRoot' will get a dirinfo passed. */ ! ! /* Returns a pointer to the dirinfo structure representing the the directory at path `path'. In case the directory info is already loaded into ! the cached directory tree, this will be re-used, else it will load it from disk and cache all the directories along the path. It will always ! return a valid pointer. The `dirinfo' pointer passed to the call-back will be the directory that is currently loading when the call-back is ! called. Note that this may vary between calls as the loading along the path progresses. It the specified path is not a valid directory the ! closest existing ancestor will be loaded instead. */ ! extern t_dirinfo *DirInfoLoadDirectoryFromPath(t_root *root, const char *path); ! ! /* Reloads the directory from disk (the cache is not used) that the dirinfo structure pointed to by `*dirinfop' represents. This can be useful in ! case the contents of the disk might have been changed. In case the directory of the dirinfo structure pointed to by `*dirinfop' does not ! exist any longer, then the pointer pointed to by dirinfop will be updated and set to point to a dirinfo structure that represents the closest ! existing ancestor directory, and the return value will be 0, else 1. */ ! extern int DirInfoReLoadDirectory(t_dirinfo **dirinfop); ! ! /* Returns the directory info of the parent directory to `dirinfo' or, in case it is the root, it will return `dirinfo'. If the cache is fresh it will ! use it. If reloading is necessary because the cache is not fresh, then it will call DirInfoReLoadDirectory, thus a NULL pointer as return value is ! possible. */ ! extern t_dirinfo *DirInfoGetUpDirectory(t_dirinfo *dirinfo); ! ! /* Will return a pointer to the directory info of the direcory associated with `dobj'. In case `dobj' is not a directory it will return a pointer to ! the closest ancestor. */ ! extern t_dirinfo *DirInfoLoadDirectoryFromDiskObject(t_diskobj *dobj); ! ! /* The following are reason parameters to the progress call-back that will be called during loading, if not NULL. */ ! #define DL_INTERVAL_ELAPSED 0 /* Call reason is that one time interval has elapsed. */ ! #define DL_LOAD_STARTED 1 /* Call reason is that loading has just started (usually the file list will be empty). */ ! #define DL_DIRECTORIES_FINISHED 2 /* Call reason is that the directories portion of the entries has been loaded. */ ! #define DL_DATAFILES_LOADED 3 /* Call reason is that all potential datafiles has been loaded (omitted if datafiles are not accepted). */ ! #define DL_DATAFILES_CHECKED 4 /* Call reason is that all datafiles has been verified (omitted if datafiles are not accepted). */ ! #define DL_FILES_LOADED 5 /* Call reason is that all normal files (non-directories) has been loaded (only for unix, flags are still to be loaded). */ ! #define DL_LOAD_FINISHED 6 /* Call reason is that all disk activity has been finished (but not yet sorted). */ ! #define DL_DIRECTORY_END 7 /* Call reason is that everything is finished in the current directory, but there are more directories to be loaded. */ ! #define DL_END 8 /* Call reason is that everything is finished. */ ! ! /* Set the mode for subsequent file loading. If `mode' is non-0 all files will be loaded, else all except hidden files and system files will be ! loaded. In case of unix "hidden" means files starting with '.'. Reloading is not necessary. */ ! extern void SetLoadHiddenSystem(t_root *root, int mode); ! ! /* Set the mode for subsequent file loading. If `mode' is non-0 all dat-files will be loaded in subsequent loads, else not. To make them available ! in existing directories these need to be reloaded (the cache will be marked as outdated). */ ! extern void SetLoadDat(t_root *root, int mode); ! ! /* Set the masks to be used in subsequent file loading. `masks' should point to a semi-colon separated list of masks, each fulfilling the criterias ! set by allegros directory loading functions (i.e. currently those of file system). To make a new file list available in existing directories these ! need to be reloaded (the cache will be marked as outdated). */ ! extern void SetLoadMasks(t_root *root, const char *masks); ! ! /* Set the sorting used in subsequent file loading. Reloading is not necessary. */ ! extern void SetLoadSorting(t_root *root, int sorting, int descending); ! ! #endif Index: obtext.c =================================================================== RCS file: /cvsroot/cgui/cgui/src/obtext.c,v retrieving revision 1.1.2.3.2.7 retrieving revision 1.1.2.3.2.8 diff -C2 -d -r1.1.2.3.2.7 -r1.1.2.3.2.8 *** obtext.c 11 Jun 2008 07:18:29 -0000 1.1.2.3.2.7 --- obtext.c 11 Jun 2008 18:52:13 -0000 1.1.2.3.2.8 *************** *** 646,650 **** to = b->appdata; i = to->sti + to->hrow; ! return to->page[i]; } return NULL; --- 646,651 ---- to = b->appdata; i = to->sti + to->hrow; ! if (i<to->n) ! return to->page[i]; } return NULL; Index: filebrow.c =================================================================== RCS file: /cvsroot/cgui/cgui/src/filebrow.c,v retrieving revision 1.2.2.4.2.16 retrieving revision 1.2.2.4.2.17 diff -C2 -d -r1.2.2.4.2.16 -r1.2.2.4.2.17 *** filebrow.c 1 Aug 2007 19:27:28 -0000 1.2.2.4.2.16 --- filebrow.c 11 Jun 2008 18:52:13 -0000 1.2.2.4.2.17 *************** *** 1,2198 **** ! /* Module FILEBROW.C ! Contains the gui-part of the file browser. There are two api-functions, ! one for selecting file(s) and another for file-maninging. Both ! wraps a generic file-browser. ! */ ! #include <ctype.h> ! #include <string.h> ! #include <allegro.h> ! ! #include "filebrow.h" [...4370 lines suppressed...] ! { ! DATAFILE *df; ! ! df = load_datafile_object(filename, objname+6); ! if (df) { ! RegisterImageCopy(df->dat, objname+1, IMAGE_TRANS_BMP, 0); ! unload_datafile_object(df); ! } ! } ! ! extern void CguiUseIcons(const char *filename) ! { ! LoadASingleIcon(filename, icon_name_mkdatadir); ! LoadASingleIcon(filename, icon_name_datadir); ! LoadASingleIcon(filename, icon_name_mkdir); ! LoadASingleIcon(filename, icon_name_up); ! LoadASingleIcon(filename, icon_name_uparrow); ! LoadASingleIcon(filename, icon_name_dir); ! LoadASingleIcon(filename, icon_name_drive); ! }  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-06-11 18:52:18
      
     
   | 
Update of /cvsroot/cgui/cgui/docs In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv23332/docs Modified Files: Tag: Branch_CGUI_1-6-7 cgui._tx changes._tx thanks._tx Log Message: fixed bug 1991139 and added feature 1991122 Index: cgui._tx =================================================================== RCS file: /cvsroot/cgui/cgui/docs/cgui._tx,v retrieving revision 1.4.2.7.2.48 retrieving revision 1.4.2.7.2.49 diff -C2 -d -r1.4.2.7.2.48 -r1.4.2.7.2.49 *** cgui._tx 11 Jun 2008 07:33:39 -0000 1.4.2.7.2.48 --- cgui._tx 11 Jun 2008 18:52:11 -0000 1.4.2.7.2.49 *************** *** 4542,4545 **** --- 4542,4547 ---- hidden because `FS_SHOW_DIR_TREE' is set). Use this flag to skip that line. + <li> FS_FILE_FILTER_IS_READ_ONLY: The edit-box showing the masks will + be disabled for user input. </ul> <li> winheader: A string that will be used as header of the browser Index: thanks._tx =================================================================== RCS file: /cvsroot/cgui/cgui/docs/thanks._tx,v retrieving revision 1.4.2.4.2.32 retrieving revision 1.4.2.4.2.33 diff -C2 -d -r1.4.2.4.2.32 -r1.4.2.4.2.33 *** thanks._tx 27 Apr 2008 10:54:21 -0000 1.4.2.4.2.32 --- thanks._tx 11 Jun 2008 18:52:12 -0000 1.4.2.4.2.33 *************** *** 46,52 **** <ul> <li> Laze Ristoski spotted some bugs and feature requests. <li> ! Márcio A. Pacheco contributed Portuguese translation of dialog texts. <li> --- 46,54 ---- <ul> <li> + + <li> Laze Ristoski spotted some bugs and feature requests. <li> ! M�rcio A. Pacheco contributed Portuguese translation of dialog texts. <li> *************** *** 60,64 **** translation of dialog texts. <li> ! Ferenc Havránek contributed Hungarian translation of dialog texts. <li> --- 62,66 ---- translation of dialog texts. <li> ! Ferenc Havr�nek contributed Hungarian translation of dialog texts. <li> Index: changes._tx =================================================================== RCS file: /cvsroot/cgui/cgui/docs/changes._tx,v retrieving revision 1.4.2.9.2.64 retrieving revision 1.4.2.9.2.65 diff -C2 -d -r1.4.2.9.2.64 -r1.4.2.9.2.65 *** changes._tx 11 Jun 2008 07:18:29 -0000 1.4.2.9.2.64 --- changes._tx 11 Jun 2008 18:52:12 -0000 1.4.2.9.2.65 *************** *** 42,45 **** --- 42,49 ---- <ul> <li> + Fixed bug 1991139 "Restricted path does not restrict completely" + <li> + Added feature 1991122 "A new flag to the file selector" + <li> Added feature 1990500 "Too small handle in the browse bar" <li>  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-06-11 18:52:18
      
     
   | 
Update of /cvsroot/cgui/cgui/include In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv23332/include Modified Files: Tag: Branch_CGUI_1-6-7 cgui.h Log Message: fixed bug 1991139 and added feature 1991122 Index: cgui.h =================================================================== RCS file: /cvsroot/cgui/cgui/include/cgui.h,v retrieving revision 1.5.2.7.2.43 retrieving revision 1.5.2.7.2.44 diff -C2 -d -r1.5.2.7.2.43 -r1.5.2.7.2.44 *** cgui.h 11 Jun 2008 07:23:07 -0000 1.5.2.7.2.43 --- cgui.h 11 Jun 2008 18:52:13 -0000 1.5.2.7.2.44 *************** *** 364,371 **** #define FS_HIDE_UP_BUTTON (1<<18) #define FS_HIDE_UP_DIRECTORY (1<<19) ! #define FM_HIDE_FILE_VEW (1<<20) ! #define FM_DO_NOT_SHOW_MENU (1<<21) ! #define FM_NO_FLOATING (1<<22) #define FM_BROWSE_DAT FS_BROWSE_DAT #define FM_DISABLE_EDIT_DAT FS_DISABLE_EDIT_DAT --- 364,372 ---- #define FS_HIDE_UP_BUTTON (1<<18) #define FS_HIDE_UP_DIRECTORY (1<<19) + #define FS_FILE_FILTER_IS_READ_ONLY (1<<20) ! #define FM_HIDE_FILE_VEW (1<<21) ! #define FM_DO_NOT_SHOW_MENU (1<<22) ! #define FM_NO_FLOATING (1<<23) #define FM_BROWSE_DAT FS_BROWSE_DAT #define FM_DISABLE_EDIT_DAT FS_DISABLE_EDIT_DAT  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-06-11 18:52:18
      
     
   | 
Update of /cvsroot/cgui/cgui/examples In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv23332/examples Modified Files: Tag: Branch_CGUI_1-6-7 05txtbox.c Log Message: fixed bug 1991139 and added feature 1991122 Index: 05txtbox.c =================================================================== RCS file: /cvsroot/cgui/cgui/examples/05txtbox.c,v retrieving revision 1.1.2.5.2.2 retrieving revision 1.1.2.5.2.3 diff -C2 -d -r1.1.2.5.2.2 -r1.1.2.5.2.3 *** 05txtbox.c 11 Jun 2008 07:18:29 -0000 1.1.2.5.2.2 --- 05txtbox.c 11 Jun 2008 18:52:12 -0000 1.1.2.5.2.3 *************** *** 14,17 **** --- 14,29 ---- } + int xid, yy; + static void getline(void* data) + { + FONT *f = GetCguiFont(); + const char* tx; + int h = text_height(f); + tx = TextboxGetHighlightedText(xid); + if (tx) + textout_ex(screen, f, tx, 10, yy+=h, cgui_white, -1); + TextboxScrollDownOneLine(xid); + } + static void shut_down(void *data) { *************** *** 75,80 **** --- 87,95 ---- "will take the string for the name of a file, loads that file and displays " "the contents of it.", 220, 0, TB_LINEFEED_); + xid=AddTextBox(DOWNLEFT, "road.tap", 200, 14, TB_TEXTFILE|TB_FRAMESINK|TB_PREFORMAT|3); + TextboxHighlighting(xid, cgui_blue, -1, 2); AddButton(DOWNLEFT, "\33E~xit", shut_down, NULL); AddButton(RIGHT, "Show code", show_code, NULL); + AddButton(RIGHT, "next", getline, NULL); DisplayWin(); }  | 
| 
     
      
      
      From: SourceForge.net <no...@so...> - 2008-06-11 18:47:17
      
     
   | 
Bugs item #1991139, was opened at 2008-06-11 18:47 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542642&aid=1991139&group_id=75005 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Dos Group: v1.6.7 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Christer Sandberg (chrisan) Assigned to: Christer Sandberg (chrisan) Summary: Restricted path does not restrict completely Initial Comment: The disk drive selection box in DOS/Windows makes it possible to enter directories on other disk drives also when there is a restricted path set. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542642&aid=1991139&group_id=75005  | 
| 
     
      
      
      From: SourceForge.net <no...@so...> - 2008-06-11 18:35:57
      
     
   | 
Feature Requests item #1991122, was opened at 2008-06-11 11:35 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=1991122&group_id=75005 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: A new flag to the file selector Initial Comment: An additional flag to the file selector that prevents the file filter to be modified. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=542645&aid=1991122&group_id=75005  | 
| 
     
      
      
      From: Christer S. <ch...@us...> - 2008-06-11 07:33:43
      
     
   | 
Update of /cvsroot/cgui/cgui/docs In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv15740/docs Modified Files: Tag: Branch_CGUI_1-6-7 cgui._tx Log Message: added features 1990500 1990492 and 1990491 Index: cgui._tx =================================================================== RCS file: /cvsroot/cgui/cgui/docs/cgui._tx,v retrieving revision 1.4.2.7.2.47 retrieving revision 1.4.2.7.2.48 diff -C2 -d -r1.4.2.7.2.47 -r1.4.2.7.2.48 *** cgui._tx 27 Apr 2008 10:54:21 -0000 1.4.2.7.2.47 --- cgui._tx 11 Jun 2008 07:33:39 -0000 1.4.2.7.2.48 *************** *** 1214,1217 **** --- 1214,1245 ---- Return value: an identification key to the object. + @@void @TextboxHighlighting(int id, int bgcolor, int textcolor, int row_index); + Makes a certain row in a textbox highlighted. This row does not follow the + text if scrolled. It is a fixed row w.r.t. the textbox widget.<br> + Parameters: + <ul> + <li> id: An id to a textbox. + <li> bgcolor: The background to be used to highlight a row. + <li> textcolor: if this is not -1 the text on the highlighted row will be + drawn with it. + <li> row_index: The index to the row that will stay highlighted. + </ul> + + @@const char *@TextboxGetHighlightedText(int id); + Returns a pointer to a string with the text of the row that is highlighted. + The memory of string belongs to the textbox.<br> + Parameters: + <ul> + <li> id: An id to a textbox. + </ul> + + @@void @TextboxScrollDownOneLine(int id); + Scrolls the text down one line. This will have no effect if the textbox has no + scrollbar.<br> + Parameters: + <ul> + <li> id: An id to a textbox. + </ul> + @@int @UpdateTextBoxText(int id, const char *string); @xref AddTextBox  |