home *** CD-ROM | disk | FTP | other *** search
/ linuxmafia.com 2016 / linuxmafia.com.tar / linuxmafia.com / pub / palmos / wapuniverse-src-0.3.5.build9.tar.gz / wapuniverse-src-0.3.5.build9.tar / wapuniverse-0.3.5.build9 / frmScroll.c < prev    next >
C/C++ Source or Header  |  2000-11-12  |  4KB  |  168 lines

  1. // ---------------------------------------------------------------------------
  2. // ScrollFrm.c
  3. // Contains PalmOS specific code, for Scrolling info form (used for view-source, license)
  4. // 
  5. // Project: WAPUniverse for PalmOS
  6. // Copyright ⌐ 1999-2000 Filip Onkelinx
  7. //
  8. // http://www.wapuniverse.com/
  9. // filip@onkelinx.com
  10. //
  11. // This program is free software; you can redistribute it and/or
  12. // modify it under the terms of the GNU General Public License
  13. // as published by the Free Software Foundation; either version 2
  14. // of the License, or (at your option) any later version.
  15. //
  16. // This program is distributed in the hope that it will be useful,
  17. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. // GNU General Public License for more details.
  20. //
  21. // You should have received a copy of the GNU General Public License
  22. // along with this program; if not, write to the Free Software 
  23. // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  24. //
  25. // 
  26. // $Workfile: frmScroll.c $  
  27. // $Author: wapuniverse $  
  28. // $Date: 2000/11/11 20:51:09 $     
  29. // $Revision: 1.7 $
  30. // 
  31. // $Header: /cvsroot/wapuniverse/wapuniverse/src/frmScroll.c,v 1.7 2000/11/11 20:51:09 wapuniverse Exp $
  32. // 
  33. // -------------------------------------------------------------------------------
  34.  
  35. #include    <PalmOS.h>
  36. #include    <SysEvtMgr.h>
  37. #include    "../res/WAPUniverse_res.h"
  38. #include     "WAPUniverse.h"
  39.  
  40. static void ScrollFrmScroll (FormPtr frm, WinDirectionType direction) SEC_1;
  41. void ScrollFrm (Char * title, MemHandle bodyHandle) SEC_1;
  42.  
  43. static void ScrollFrmScroll (FormPtr frm, WinDirectionType direction)
  44. {
  45.     UInt16 upIndex;
  46.     UInt16 downIndex;
  47.     UInt16 linesToScroll;
  48.     Boolean enableUp;
  49.     Boolean enableDown;
  50.     FieldPtr fld;
  51.  
  52.     fld = FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, scrllField));
  53.     linesToScroll = FldGetVisibleLines (fld) - 1;
  54.     FldScrollField (fld, linesToScroll, direction);
  55.  
  56.     enableUp = FldScrollable (fld, winUp);
  57.     enableDown = FldScrollable (fld, winDown);
  58.     upIndex = FrmGetObjectIndex (frm, buttonScrollUp);
  59.     downIndex = FrmGetObjectIndex (frm, buttonScrollDown);
  60.  
  61.     FrmUpdateScrollers (frm, upIndex, downIndex, enableUp, enableDown);
  62. }
  63.  
  64.  
  65. void ScrollFrm (Char * title, MemHandle bodyHandle)
  66. {
  67.     UInt16 upIndex;
  68.     UInt16 downIndex;
  69.     FormPtr frm;
  70.     FieldPtr fld;
  71.     Boolean enableUp;
  72.     Boolean enableDown;
  73.     Boolean done = false;
  74.     EventType event;
  75.     FormPtr curForm;
  76.     
  77.     curForm = FrmGetActiveForm();        // save active form/window state
  78.  
  79.     InsPtEnable (false);
  80.  
  81.     frm = FrmInitForm (frmScroll);
  82.     FrmSetTitle(frm,title);
  83.  
  84.     fld = FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, scrllField));
  85.     FldSetTextHandle (fld, (MemHandle)bodyHandle);
  86.  
  87. //    FrmEraseForm (curForm);
  88.     FrmDrawForm (frm);
  89.     FrmSetActiveForm (frm);
  90.     
  91.     upIndex = FrmGetObjectIndex (frm, buttonScrollUp);
  92.     downIndex = FrmGetObjectIndex (frm, buttonScrollDown);
  93.  
  94.     enableUp = FldScrollable (fld, winUp);
  95.     enableDown = FldScrollable (fld, winDown);
  96.     FrmUpdateScrollers (frm, upIndex, downIndex, enableUp, enableDown);
  97.     
  98.     while (! done)
  99.         {
  100.         EvtGetEvent (&event, evtWaitForever);
  101.         if (! SysHandleEvent (&event))
  102.             FrmHandleEvent (frm, &event);
  103.  
  104.         if (event.eType == ctlSelectEvent)
  105.             {
  106.             switch (event.data.ctlSelect.controlID)
  107.                 {
  108.                 case buttonScrollUp:
  109.                     ScrollFrmScroll (frm, winUp);
  110.                     break;
  111.                     
  112.                 case buttonScrollDown:
  113.                     ScrollFrmScroll (frm, winDown);
  114.                     break;
  115.                 case buttonScrollDone:
  116.                     done = true;
  117.                 }
  118.             if (event.data.ctlSelect.controlID == buttonScrollDone)
  119.                 done = true;
  120.             }
  121.                     
  122.         else if (event.eType == ctlRepeatEvent)
  123.             {
  124.             switch (event.data.ctlSelect.controlID)
  125.                 {
  126.                 case buttonScrollUp:
  127.                     ScrollFrmScroll (frm, winUp);
  128.                     break;
  129.                     
  130.                 case buttonScrollDown:
  131.                     ScrollFrmScroll (frm, winDown);
  132.                     break;
  133.                 }
  134.             }
  135.  
  136.  
  137.         else if (event.eType == keyDownEvent)
  138.             {
  139.             switch (event.data.keyDown.chr)
  140.                 {
  141.                 case pageUpChr:
  142.                     ScrollFrmScroll(frm, winUp);
  143.                     break;
  144.                     
  145.                 case pageDownChr:
  146.                     ScrollFrmScroll (frm, winDown);
  147.                     break;
  148.                 }
  149.             }
  150.  
  151.  
  152.         else if (event.eType == appStopEvent)
  153.             {
  154.             EvtAddEventToQueue (&event);
  155.             break;
  156.             }
  157.         }
  158.  
  159.     FldSetTextHandle (fld, 0);
  160.     FrmEraseForm (frm);
  161.     FrmDeleteForm (frm);
  162.     
  163. //    FrmDrawForm(curForm);
  164.     FrmSetActiveForm(curForm);        
  165.  
  166. }
  167.  
  168.