home *** CD-ROM | disk | FTP | other *** search
/ Freelog 30 / Freelog030.iso / Palm / Pilotdb / ChangeLog next >
Text File  |  2001-12-03  |  105KB  |  2,792 lines

  1. 2001-12-03  Marc Chalain <marc-chalain@voila.fr>
  2.  
  3.     Bug fix:
  4.  
  5.     util.c: MyErr must not exist if we have not the global access
  6.  
  7.     main.c(ChooseInitialForm): not set the filter if the driver doesn't
  8.     support them.
  9.  
  10. 2001-11-19  Marc Chalain <marc-chalain@voila.fr>
  11.  
  12.     Handera, Filter bugs fix.
  13.  
  14.     chooser.c: Handera support.
  15.     (ChooserHandleEvent): set the filter (none or all) at the opening.
  16.  
  17.     list.c(ListViewHandleEvent): doesn't set the filter at the OK button press.
  18.  
  19.     prefs.c: Hadera support.
  20.  
  21.     sort.c: Hadera support.
  22.  
  23.     io.c(DS_PDB_Info): use tempo variables for dbID and cardNo.
  24.     (DS_GetView): use GLOBAL_ACCESS define for plugin support.
  25.  
  26. 2001-11-15  Marc Chalain <marc-chalain@voila.fr>
  27.  
  28.     Bugs fix.
  29.  
  30.     main.c(ChooseInitialForm): bug fix.
  31.  
  32.     chooser.c(ChooserResizeForm): replaced by UtilResizeForm.
  33.     (ChooserHandlerEvent): unlock the record every time.
  34.     (DoDuplicate): bug fix.
  35.     (DuplicateDlgHandleEvent): free memory, Handera support, size reduced.
  36.     (RenameDlgHandleEvent): Handera support, size reduced.
  37.     (CreateDlgHandleEvent): Handera support, size reduced.
  38.     (PopupOptionsDialog): Handera support.
  39.     (ChooserInfoDialogHandleEvent): Handera support.
  40.  
  41.     design.c(DesignViewUpdateForm): replaced by UtilResizeForm.
  42.     (DesignViewHandleEvent): free memory, Handera support.
  43.  
  44.     edit.c(EditViewResizeForm): replaced by UtilResizeForm.
  45.     (EditViewCustomDraw): store Link string in a handler not in an array.
  46.     (SetupRecordData): store Link string in a handler not in an array.
  47.     (FreeRecordData): free the Link handler.
  48.     (EditViewHandleEvent): little cut in the field management.
  49.  
  50.     find.c(GFindCallback): bug fix.
  51.  
  52.     link.c(LinkSelectHandleEvent): store Link string in a handler not in an
  53.     array.
  54.     (LinkUpdate): store Link string in a handler not in an array.
  55.  
  56.     list.c(ListViewResizeForm): replaced by UtilResizeForm.
  57.     (CmpField): move to util.c
  58.     (FindDialogHandleEvent): bug fix.
  59.  
  60.     listprop.c(LoadTable): becomes ListViewEditorLoadTable.
  61.     (InitTable): becomes ListViewEditorInitTable.
  62.     (Scroll): becomes ListViewEditorScroll.
  63.     (ListViewEditorLoadTable): accept a biger table.
  64.     (ListViewEditorUpdateForm): new function.
  65.     (ListViewEditor_HandleEvent): becomes ListViewEditorHandleEvent.
  66.  
  67.     names.c: Handera support.
  68.  
  69.     popuplist.c: rename global variables names and actions to Names and
  70.     Actions.
  71.  
  72.     util.c(UtilMoveObject): static function.
  73.     (UtilResizeObject): static function.
  74.     (UtilResizeForm): becomes UtilGetSizeForm.
  75.     (UtilGetSizeForm): static function, bug fix.
  76.     (UtilResizeForm): new function (same name than the old).
  77.     (HandleCommonMenuEvent): bug fix.
  78.     (UtilCenterForm): new function.
  79.  
  80.     db.h: declaration of new functions.
  81.  
  82.     db.rcp.in: new icons, form resized.
  83.  
  84. 2001-11-14  Scott Wallace <swallace@eecs.umich.edu>
  85.  
  86.     grid.c(GridDraw): Grid Header drawn with UtilWinDrawTruncChars,
  87.     Float field headers are right justified.
  88.  
  89. 2001-11-12  Marc Chalain <marc-chalain@voila.fr>
  90.  
  91.     Bugs fix.
  92.  
  93.     chooser.c(DrawIcon): draw big Icon for Handera device.
  94.  
  95.     design.c(FieldPropertiesHandleEvent): all static variables must initialized
  96.     during the frmOpenEvent. It's not every time usefull but it's better.
  97.  
  98.     edit.c(EditViewHandleEvent): a verification before to open a list.
  99.  
  100.     grid.c(LoadGrid): reload the header if the font are changed.
  101.  
  102.     main.c(ChooseInitialForm): reset the filter.
  103.  
  104.     prefs.c(AppPrefsHandleEvent): set the bold font.
  105.  
  106.     enum-icons.h: new defines for Handera icons.
  107.  
  108.     db.rcp.in: new handera icons, small modifications in the ListViews.
  109.  
  110.     bitmaps/*: new icons for grayscale and Handera devices.
  111.  
  112.     langs/*.rpc: new translation files (sv, ja, fr).
  113.  
  114.     README_ja: new readme file in japanese.
  115.  
  116. 2001-11-07  Marc Chalain <marc-chalain@voila.fr>
  117.  
  118.     Bugs fix on SONY support.
  119.  
  120.     edit.c(EditViewCustomDraw): change the font with SONY device.
  121.     (EditViewGetFieldHeight): change Height only with Large Font.
  122.     (EditViewSetColumnWidth): change Width only with Large Font.
  123.     (EditViewLoadTable): change Height only with Large Font.
  124.     (EditViewResizeDescription): change Height only with Large Font.
  125.  
  126.     prefs.c(AppPrefsHandleEvent): give the choice between Small and Large
  127.     Fonts.
  128.  
  129.     chooser.c(LoadTable): change Height only with Large Font.
  130.  
  131.     db.rcp.in(alertID_TypeFontSelect): new Alert Box.
  132.  
  133.     enum.h: new alertID_TypeFontSelect define.
  134.  
  135. 2001-11-07  Marc Chalain <marc-chalain@voila.fr>
  136.  
  137.     Bugs fix.
  138.  
  139.     design.c(FieldPropertiesHandleEvent): show new item added in a list.
  140.  
  141.     chooser.c(DoDuplicate): correction of the GetCalculated functions.
  142.     (PopupOptionsDialog): resize the form for Handera device.
  143.  
  144.     edit.c(EditViewHandleEvent): correct the Scroll Key press on new Item
  145.     error.
  146.  
  147.     configure.in: Script disable by default.
  148.  
  149.     db-c.bmp: center the bitmap in a 32x22 format.
  150.  
  151.     small-*.bmp: little correction.
  152.  
  153.     db-h.bmp: little correction.
  154.  
  155. 2001-11-06  Marc Chalain <marc-chalain@voila.fr>
  156.  
  157.     Handera complete support.
  158.  
  159.     db.rc.in: add new icons and Handera resources.
  160.  
  161.     prefs.c: resize thz database preferences box.
  162.  
  163.     small-h.bmp: new icon.
  164.  
  165.     db-h.bmp: new icon.
  166.  
  167. 2001-11-06  Marc Chalain <marc-chalain@voila.fr>
  168.  
  169.     Translation update.
  170.  
  171.     prefs.c(AppPrefsHandleEvent): no 9006 label.
  172.  
  173.     db.rcp.in(formID_AppPrefs): no 9006 label.
  174.  
  175.     langs/sample.rcp: new strings.
  176.  
  177. 2001-11-06  Marc Chalain <marc-chalain@voila.fr>
  178.  
  179.     Global find bug fix.
  180.  
  181.     find.c(GFindCallback): unuse ConvertFieldToString for numeral fields,
  182.     because some functions (DoublePrintValue, Script...) are in another
  183.     section.
  184.  
  185. 2001-11-05  Scott Wallace <swallace@eecs.umich.edu>
  186.  
  187.     Calculated field type uses a script to calculate a field value
  188.     from other fields in the same record
  189.  
  190.     Float field type allows double precision floating point numbers
  191.  
  192.     * util.c(UtilWinDrawTruncChars) now supports right & left justification
  193.  
  194.     * design.c(Rebuild): while rebuilding each record, the global CurrentRecord
  195.     is set to the index of the record being rebuilt.  This will be useful
  196.     for future script functionality.
  197.     (SchemaFields): this global variable is no longer static.  It is used in
  198.     script.c
  199.     
  200.  
  201. 2001-11-01  Marc Chalain <marc-chalain@voila.fr>
  202.  
  203.     Global find bug fix on PalmOS 3.2 and prior.
  204.  
  205.     find.c(GFindCallback): set source->currentfilter to FILTERALL.
  206.     use ConvertFieldToString instead to search on String only.
  207.  
  208. 2001-10-31  Marc Chalain <marc-chalain@voila.fr>
  209.  
  210.     Chooser update.
  211.  
  212.     chooser.c(ChooserUpdateForm): accept more kinds of updates.
  213.     (ChooserHandleEvent): use less the frmUpdateEvent, use more kinds of
  214.     updates.
  215.     (FillDriverList): not add the drivers which are not able to create a
  216.     database.
  217.  
  218. 2001-10-31  Marc Chalain <marc-chalain@voila.fr>
  219.  
  220.     Non use filters on some database formats.
  221.  
  222.     * list.c(LocalSearch): if the filter doesn't exist, go out at the first
  223.     occurent foud.
  224.     (FindDialogHandleEvent): hide filters if the database doesn't support
  225.     filters or preferences disable Filters.
  226.     (DoCommand): add the repeat command.
  227.     (ListViewUpdateForm): hide filters if the database doesn't support filters
  228.     or preferences disable Filters.
  229.     (ListViewHandleEvent): add the repeat command.
  230.  
  231.     * db.rcp.in: new menu Repeat in the ListView menu, new button hiden in the
  232.     ListView.
  233.  
  234.     * prefs.c(AppPrefsHandleEvent): new check box to use filters or not.
  235.     (InitPrefs): function from main.c.
  236.  
  237.     * db.h: new define prefFlagUnuseFilers. new function declaration InitPrefs.
  238.  
  239.     * enum.h: new define ctlID_AppPrefs_UseFilters.
  240.  
  241.     * main.c(InitPrefs): go to prefs.c
  242.  
  243. 2001-10-27  Marc Chalain <marc-chalain@voila.fr>
  244.  
  245.     Sony support.
  246.     !!The Sony API are very bad and unuser-friendly!!
  247.     The High Resolution API from Handera is more user-friendly.
  248.     Some functions like FntLineHeight give the value for 320x320 screen,
  249.     but the OS calculates the object size for a 160x160 screen. Then for
  250.     sony device you will see a lot of "size" *= 2 or "size" /= 2
  251.  
  252.     main.c(StartApplication): check sony device feature present.
  253.     Use HRFntSetFont for Sony.
  254.     (InitPrefs): change the defaults fonts for Sony.
  255.  
  256.     edit.c(EditViewCustomDraw): change the font before WinDrawChars function.
  257.  
  258.     grid.c: use HR functions on Sony device.
  259.  
  260.     util.c(UtilWinDrawTruncChars): use HR functions on Sony device.
  261.  
  262.     chooser.c: use HR functions on Sony device.
  263.  
  264. 2001-10-27  Marc Chalain <marc-chalain@voila.fr>
  265.  
  266.     Bug fix.
  267.  
  268.     * edit.c(SaveRecord): move the "isDirty" before the ValidateData check.
  269.     (EditViewHandleEvent): correct the fieldnum in the tblEnterEvent section.
  270.     (EditViewCustomDraw): add the link display.
  271.     (EditViewInitTableRow): change link display from label to custom.
  272.  
  273.     * link.c(LinkUpdate): remove all alerts.
  274.  
  275. 2001-10-17  Marc Chalain <marc-chalain@voila.fr>
  276.  
  277.     A internal view display All fields. it's not use to add a view
  278.     when a database is created.
  279.  
  280.     * list.c(SelectViewTrigger): add a list item "All Fields" to go in this View.
  281.     (ListViewHandleEvent): verify the View slected.
  282.  
  283.     * db3.c(DB_Create): doesn't create the default View.
  284.     (DB_DeleteView): accept to delete the last View.
  285.     (DB_Capable): accept to delete the last View.
  286.  
  287. 2001-10-17  Marc Chalain <marc-chalain@voila.fr>
  288.  
  289.     Find feature for every Field Types.
  290.  
  291.     * list.c(CmpField): use ConvertFieldToString instead its own "switch".
  292.  
  293. 2001-10-17  Marc Chalain <marc-chalain@voila.fr>
  294.  
  295.     No date support.
  296.  
  297.     * edit.c(EditViewHandleEvent): open ctlID_EditView_DateTimeChoiceList list
  298.     before to select the date or the time.
  299.     (EditViewCustomDraw): display "N/A" for no date or time.
  300.     (SetupRecordData): default value for date and time are none.
  301.  
  302.     * io.c(ConvertFieldToString): display "N/A" for no date or time.
  303.  
  304.     * db.rcp.in: new ctlID_EditView_DateTimeChoiceList list in formID_EditView form.
  305.  
  306. 2001-10-12  Marc Chalain <marc-chalain@voila.fr>
  307.  
  308.     Add new Plugin section( only internal use)
  309.  
  310.     * db.def.in, configure.in: new "plugsect" section.
  311.  
  312.     * plugin.c: use the new section.
  313.  
  314. 2001-10-12  Marc Chalain <marc-chalain@voila.fr>
  315.  
  316.     Select field to display in a Link Field
  317.  
  318.     * design.c(PropertiesEventHandler): open the linked database to select the field.
  319.  
  320.     * io.c(ConvertFieldToString): copy the value of a field in a string if
  321.     it's possible.
  322.  
  323.     * io.h: declaration of ConvertFieldToString.
  324.  
  325.     * lin.c(LinkSelect): use ConvertFieldToString to update the link field.
  326.  
  327.     * ViewModel.c(ViewModel_GetCellString): use ConvertFieldToString.
  328.  
  329. 2001-10-12  Marc Chalain <marc-chalain@voila.fr>
  330.  
  331.     Update the GotoItem functionality and the Jump to Link
  332.  
  333.     * main.c(PilotMain): replace the "if"s to a "switch" and homoginize
  334.     the treatement of some launch code.
  335.     (GotoItem): use only new driver functions to be not depend of the
  336.     database support (for the future VFS support).
  337.  
  338.     * io.c(DS_PDB_Info): new function to give informations about the source.
  339.     (DS_GetRecordIndex): new function similar to DS_GetRecordID.
  340.  
  341.     * io.h: new declaration of DS_PDB_Info, DS_GetRecordIndex.
  342.  
  343.     * datasource.h: add Info and GetRecordIndex pointer in the 
  344.     DataSourceOperations structure.
  345.  
  346.     * db3.h(DB_Open): assignation to the io functions.
  347.  
  348.     * link.c(LinkGo): add the tratement of the Jump.
  349.  
  350. 2001-10-xx  Scott Wallace
  351.  
  352.     Add the Calculated Field Type
  353.  
  354. 2001-10-xx  Float Wallace
  355.  
  356.     Add the List Field Type
  357.  
  358.  
  359. 2001-10-09  Marc Chalain <marc-chalain@voila.fr>
  360.  
  361.     Bug fix on the protectedmode (Read/Edit mode)
  362.     
  363.     * main.c(SaveCurrentDataSource): save the protectedmode value.
  364.     (ChooseInitialForm): restore the protectedmode value.
  365.  
  366.     * edit.c(EditViewUpdateForm): better test to use EditViewSetFieldEnabled.
  367.  
  368.     * chooser.c(ChooserHandleEvent): correct the protectedmode value.
  369.  
  370. 2001-10-09  Marc Chalain <marc-chalain@voila.fr>
  371.  
  372.     Add the Link Field Type
  373.  
  374. 2001-10-09  Marc Chalain <marc-chalain@voila.fr>
  375.  
  376.     Add the List Field Type
  377.  
  378. 2001-10-09  Marc Chalain <marc-chalain@voila.fr>
  379.  
  380.     Add Handera and Sony support. Add Up and Down arrow for keyboard support.
  381.  
  382.     * edit.c(EditViewHandleEvent): vchrPrevField, vchrJogUp, upArrowChr,
  383.     vchrNextField, displayExtentChangedEvent... control.
  384.     (EditViewUpdateForm): use EditViewResizeForm.
  385.     (EditViewResizeForm): new function to resize the form for Handera
  386.     Slickscreen.
  387.  
  388.     *listprop.c(DrawFieldName, DrawWidth): no change font.
  389.     (InitTable): Handera support.
  390.  
  391.     * list.c: Handera & Sonny support.
  392.  
  393.     * sort.c: Handera support.
  394.  
  395.     * util.c(UtilResizeForm): new function.
  396.     (UtilMoveObject): new function.
  397.     (UtilResizeObject): new function.
  398.  
  399. 2001-08-21  Marc Chalain <marc-chalain@voila.fr>
  400.  
  401.     Change the beam support to Exchange support for PalmOS 4.0
  402.  
  403.     *  main.c: new FeatureSet40
  404.     (StartApplication): set FeatureSet40.
  405.  
  406.     *  io.c(BeamDataSource): became ExchangeDataSource.
  407.     (DS_PDB_Beam): became DS_PDB_Exchange, use the url description
  408.     for the name of the ExgSocketType.
  409.     
  410.     *  io.h(BeamDataSource): became ExchangeDataSource.
  411.     (DS_PDB_Beam): became DS_PDB_Exchange.
  412.  
  413.     *  chooser.c(ChooserHandleEvent): BeamDataSource became
  414.     ExchangeDataSource.
  415.     The "Beam" menu item became "Exchange"
  416.  
  417.     *  enum.h: stringID_Beam became stringID_Exchange.
  418.  
  419.     *  db.rcp.in: the "Beam" string became "Exchange"
  420.  
  421.     *  langs/sample.rcp: the "Beam" string became "Exchange"
  422.  
  423. 2001-08-21  Marc Chalain <marc-chalain@voila.fr>
  424.  
  425.     View support in the Edit View
  426.  
  427.     *  edit.c(EditViewHandleEvent): get and put the View from the
  428.     datasource.
  429.     (EditViewCustomDraw): add View support.
  430.     (EditViewLoadRecord): add View support.
  431.     (EditViewUpdateScrollers): add View support.
  432.     (EditViewGetFieldHeight): add View support.
  433.     (EditViewInitTableRow): add View support.
  434.     (EditViewLoadTable): add View support.
  435.     (EditViewScroll): add View support.
  436.  
  437. 2001-08-21  Marc Chalain <marc-chalain@voila.fr>
  438.  
  439.     filter support
  440.  
  441.     *  io.c(DS_FilterRecord): add Filter support.
  442.     (DS_SetFilter): add Filter support.
  443.     (DS_GetCurrentFilter): new Function.
  444.  
  445.     *  list.c(ListViewHandlEvent): add FilterTrigger support
  446.     (FindHandleEvent): add Filter support.
  447.     (LocalSearch): add Filter support.
  448.  
  449.     *  datasource.h: new Filter enum
  450.  
  451.     *  db.rcp.in(fomrID_ListView): new Trigger and list for Filters.
  452.     
  453. 2001-08-20  Marc Chalain <marc-chalain@voila.fr>
  454.  
  455.     check of the Read-Only and Beam Prevention bit attribute
  456.     and default value for Integers.
  457.  
  458.     *  io.c(DS_PDB_Beam): check the dmHdrAttrCopyPrevention attribute.
  459.  
  460.     *  db3.c(DB_Open): check the dmHdrAttrReadOnlyattribute and check the
  461.     AppInfo Block.
  462.     (GetAppInfoBlock)(PutAppInfoBlock): check the AppInfo Block is present.
  463.  
  464.     *  chooser.c(ChooserHandleEvent): reduce the code to open a database.
  465.  
  466.     *  util.c(IsNumber): use Sring2Long to reduce the size of code.
  467.     (String2Long): check errors, an error return 0.
  468.  
  469.     *  edit.c(ValidateData): a null string for an integer is not yet
  470.     an error.
  471.     (EditView_GetInteger): no modification but a null string return 0.
  472.     (EditViewHandleEvent): rechange the modification of 2001-08-08
  473.  
  474. 2001-08-13  Marc Chalain <marc-chalain@voila.fr>
  475.  
  476.     bugs fix in the note field, and on PalmOS 3.1 and prior.
  477.  
  478.     * note.c: delete NOTE_MAXCHAR and MAX_NOTES defines.
  479.  
  480.     * datasource.h: add NOTE_MAXCHAR and MAX_NOTES defines.
  481.  
  482.     * db3.c(DB_PackRecord): save maximum NOTE_MAXCHAR characters.
  483.  
  484.     * list.c(ListViewHandleEvent): change the usable attribute of the icons
  485.     for PalmOS 3.1 and prior.
  486.  
  487. 2001-08-10  Marc Chalain <marc-chalain@voila.fr>
  488.  
  489.     bugs fix on the read only mode.
  490.  
  491.     *  main.c(SaveCurrentDataSource): save the open mode.
  492.     (ChooseInitialForm) read the open mode.
  493.     (PilotMain): delete the lastdatasource preference after an hotsync.
  494.  
  495.     *  list.c(DoCommand): forbidde sort, DB structure in readonly mode.
  496.     (ListViewHandleEvent): forbide sort in read only mode. hide new button,
  497.     show lock button in readonly mode.
  498.  
  499.     *  edit.c(EditViewHandleEvent): hide done, delete, duplicate buttons,
  500.     show cancel button in readonly mode.
  501.  
  502.     *  io.c(DS_SetFilter): reopen the database in readwrite mode just at the
  503.     beginning to filter and rechange the mode at the end.
  504.     (DS_FilterRecord): like DS_SetFilter.
  505.  
  506.     *  db.rcp.in: add the lock icon in the list view form.
  507.  
  508.     *  enum-icons.h: add define for the lock icon.
  509.  
  510. 2001-08-08  Marc Chalain <marc-chalain@voila.fr>
  511.  
  512.     use PalmOS feature for Security menu item.
  513.  
  514.     *  edit.c(EditViewHandleEvent): use FrmSaveAllForms to save the data
  515.  
  516.     *  chooser.c(ChooserHandleEvent): new menuOpentEvent entry, to add the
  517.     security menu item on PalmOS3.5. The alert of the PalmOS3.5 feature is
  518.     not useful in the security menu entry.
  519.  
  520.     *  db.rcp.in: delete the Security item in the ChooserMenu, and delete
  521.     the alert of PalmOS 3.5 feature.
  522.  
  523. 2001-08-07  Marc Chalain <marc-chalain@voila.fr>
  524.  
  525.     use the color feature for Grayscale device
  526.  
  527.     *  main.c(StartApplication): call SetColorDefinition
  528.     (SetColorDefinition): find the depth of the device, fix the color of
  529.     UIOK, and UIFieldTextHighlightBackground for Grayscale device. Set the
  530.     device in Gray mode.
  531.  
  532.     *  grid.c(GridInit): use UIOK index color for one line on two.
  533.  
  534. 2001-08-07  Marc Chalain <marc-chalain@voila.fr>
  535.  
  536.     autoconf support
  537.  
  538.     *  config.mak: deleted
  539.  
  540.     *  configure.in: description file for autoconf
  541.  
  542.     *  Makefile.in: template of Makefile for configure
  543.  
  544.     *  config.h.in: template of config.h for configure
  545.  
  546.     *  db.rcp.in: template of db.rcp for configure
  547.  
  548.     *  db.def.in: template of db.def for configure
  549.  
  550.     *  list.c, main.c, edit.c, util.c, io.c, io.h, chooser.c, grid.c:
  551.     change the compilation options to use the config.h
  552.  
  553. 2001-07-21  Marc Chalain <marc-chalain@voila.fr>
  554.  
  555.     find functionelity doesn't use the second button
  556.     + more secure implementation
  557.  
  558.     *  JFile3.c: add include io.h
  559.  
  560.     *  MobileDB.c(MobileDB_LockRecord): add the pointer on standard
  561.     functions for the getter.
  562.  
  563.     *  chooser.c(): add verification.
  564.  
  565.     *  db2.c(OldDB_LockRecord): add the pointer on standard
  566.     functions for the getter.
  567.  
  568.     *  edit.c(DoCommand): add preprocessor to not compile "linkaware" support.
  569.  
  570.     *  grid.c: add preprocessor to not compile color support.
  571.  
  572.     *  io.c: new standard functions DS_Getter_GetInteger,
  573.     DS_Getter_GetBoolean,
  574.     DS_Getter_GetTime, DS_Getter_GetNote, DS_Getter_GetNoteTitle.
  575.     (DS_Seek): add verification of the driver's capability for the filter.
  576.  
  577.     *  list.c(ListViewEventHandler): add a global boolean for the find 
  578.     button state. Show/hide Find/All button in th frmUpdateEvent.
  579.  
  580.     *  main.c: add preprocessor to not compile "linkaware" support.
  581.  
  582.     *  util.c: add preprocessor to not compile color support.
  583.  
  584.     *  enum.h: add defines for icons.
  585.  
  586.     *  io.h: add new functions definition.
  587.  
  588.     *  db.rcp: change some strings ( menu item, help strings...).
  589.  
  590.     *  plug.rcp: change the form.
  591.  
  592.     *  Makefile: add support for WITHOUT_LINKAWARE and
  593.     WITHOUT_COLOR support.
  594.  
  595.     *  config.mak: add WITHOUT_LINKAWARE and WITHOUT_COLOR
  596.     in comment.
  597.     
  598.     *  db-c.bmp: new color icon.
  599.  
  600.     *  db.bmp: new icon.
  601.  
  602.     *  langs/fr.rcp: update with new help strings.
  603.  
  604.     *  langs/en.rcp: new help strings.
  605.  
  606.     *  langs/sample.rcp: new strings to translate.
  607.  
  608. 2001-07-14  Marc Chalain <marc-chalain@voila.fr>
  609.  
  610.     filter implementation + find functionality
  611.  
  612.     *  db3.c(DB_open):: add pointer on DS_FilterRecord and DS_SetFilter
  613.  
  614.     *  io.c: new define VisibleCategory
  615.     (DS_FilterRecord): new funtion.
  616.     (DS_SetFilter): new function.
  617.     (DS_Seek): change the category.
  618.  
  619.     *  grid.c(LoadGrid): change the incrementation to use filter.
  620.  
  621.     *  list.c(LocalSearch): doesn't stop the search and place record in
  622.     the VisibleCategory.
  623.     (FindDialogHandleEvent): different use of LocalSearch.
  624.     (ListViewHandleEvent): change the action of Find button and + button.
  625.  
  626.     *  datasource.h: new enum DS_CAPABLE_LISTVIEW_FILTER.
  627.  
  628.     *  io.h: declaration of DS_FilterRecord and DS_SetFilter.
  629.  
  630.     *  db.rcp: button "+" becomes button "All".
  631.  
  632. 2001-07-09  Marc Chalain <marc-chalain@voila.fr>
  633.  
  634.     Bug fix
  635.  
  636.     *  chooser.c(Duplicate_GetNote): new function.
  637.     (Duplicate_GetNoteTitle): new function.
  638.     (Duplicate_Get...): add FIELD_TYPE_NOTE switch entry.
  639.     (DoDuplicate): add pointer on GetNote and GetNoteTitle.
  640.  
  641.     *  util.c(string2long): test the Int32 max value.
  642.  
  643.     *  edit.c(EditViewLoadRecord): max length of integer.
  644.     (EditViewInitTable): second column width change to view the note icon.
  645.  
  646.     *  list.c(ListViewHandleEvent): title length verification(bug fix).
  647.  
  648.     *  plugin.c(PluginListHandleEvent): bug fix to call FreePluginList.
  649.     (FreePluginList): bug fix when list is empty.
  650.     (FillPluginList): bug fix when list is empty.
  651.  
  652. 2001-07-03  Marc Chalain <marc-chalain@voila.fr>
  653.  
  654.     Menu of the Note editor. Bug fix
  655.  
  656.     *  note.c(NotePopupForm): return UInt16 instead void, size of
  657.     note extended(bug fix).
  658.     (NoteNew): size of note extended(bug fix).
  659.     (NoteHandleEvent): add HandleCommonMenuEvent call.
  660.  
  661.     *  note.h: NotePopupForm declaration.
  662.  
  663.     *  list.c(ListViewHandleEvent): title length verification(bug fix).
  664.     fix the view name maximum length to 11(bug fix).
  665.     (ViewModel_IsColumnEditable): checkbox unselectable in protected mode.
  666.  
  667.     *  design.c(SetColumnWidths): minimum width of oldname_column(bug fix).
  668.  
  669.     *  db.rcp(formID_Note): add menu resource.
  670.     (menuID_NoteMenu): new menu.
  671.  
  672.     *  enum.h: new defines.
  673.  
  674.     *  Makefile: version number modification.
  675.  
  676.     *  util.c: the include stdarg.h becomes unix_stdarg.h standard of the
  677.     SDK.
  678.     (String2Long): result becames UInt16.
  679.  
  680.     *  db.rcp(formID_ListView): new coord. for the Gadget (Grid) to display
  681.     10 lines. (update from Brian Foley)
  682.  
  683. 2001-07-02  Marc Chalain <marc-chalain@voila.fr>
  684.  
  685.     Bug fix, and memory verification.
  686.  
  687.     *  note.c(NoteFree): delete an !
  688.  
  689.     *  note.h: note.c functions declaration in the edisect section.
  690.  
  691.     *  edit.c: add controls after MemHandleNaw MemHandleFree ... functions.
  692.  
  693.     *  list.c(FindDialogHandleEvent): add Memory free at frmCloseEvent.
  694.  
  695.     *  design.c(DesignViewHandleEvent): add Memory free at frmCloseEvent.
  696.  
  697.     *  util.c(CopyStringResource): add control after MemPtrNew.
  698.  
  699. 2001-06-28  Marc Chalain <marc-chalain@voila.fr>
  700.  
  701.     MobileDB updated to use io.h. version licence changed
  702.  
  703.     *  MobileDB.c: add #include "io.h"
  704.  
  705.     *  db.rcp(alertID_About): changed to display the translater name,
  706.     (and mine).
  707.  
  708.     *  langs/*.rcp: translater string.
  709.  
  710.     *  Makefile: the version pass to 0.3.2b1.
  711.  
  712.     *  util.c(HandleCommonMenuEvent): change the about box's call.
  713.  
  714. 2001-06-28  Marc Chalain <marc-chalain@voila.fr>
  715.  
  716.     Plugin support update. This feature runs but i'm looking for a solution
  717.     to use GCC instead CW for the plugins, then the support should change
  718.     for the next release (0.3.3). Now i'm waiting the prc-tool 2.1.0 is
  719.     completed.
  720.  
  721.     *  plugin.c
  722.  
  723.     *  plugin.h
  724.  
  725. 2001-06-28  Marc Chalain <marc-chalain@voila.fr>
  726.  
  727.     Note support added on DB file. The UI can accept 10 note fields per 
  728.     record, but the DB file accept only one. A note is a field with a title
  729.     of 32 bytes and a string of 6500 bytes displaied in a popup form.
  730.  
  731.     *  edit.c(EditViewGetFieldHeight): add FIELD_TYPE_NOTE switch entry.
  732.     (EditViewInitTableRow): add FIELD_TYPE_NOTE switch entry.
  733.     (EditViewScroll): add FIELD_TYPE_NOTE switch entry.
  734.     (EditView_GetNoteTitle) new function.
  735.     (EditView_GetNote): new function.
  736.     (EditViewGetter): pointer on EditView_GetNoteTitle, EditView_GetNote.
  737.     (SaveRecord): add FIELD_TYPE_NOTE switch entry.
  738.     (SetupRecordData): add FIELD_TYPE_NOTE switch entry.
  739.     (FreeRecordData): add FIELD_TYPE_NOTE switch entry.
  740.     (EditViewHandleEvent): add FIELD_TYPE_NOTE switch entry in
  741.     tblEnterEvent, tblSelectEvent.
  742.  
  743.     *  design.c(types): new FIELD_TYPE_NOTE entry.
  744.     (Rebuild_GetString): add FIELD_TYPE_NOTE switch entry.
  745.     (Rebuild_GetInteger): add FIELD_TYPE_NOTE switch entry.
  746.     (Rebuild_GetBoolean): add FIELD_TYPE_NOTE switch entry.
  747.     (Rebuild_GetNote): new function.
  748.     (Rebuild_GetNoteTitle): new function.
  749.     (rebuild_getter): pointers on Rebuild_GetNoteTitle, Rebuild_GetNote.
  750.     (UpdateNewDesign): management of errors.
  751.  
  752.     *  db3.c(ExtractSchema): type 5 entry for FIELD_TYPE_NOTE.
  753.     (DB_PackedRecordSize): add FIELD_TYPE_NOTE switch entry.
  754.     (DB_PackRecord): add FIELD_TYPE_NOTE switch entry.
  755.     (DB_Getter_GetNoteTitle): new function.
  756.     (DB_Getter_GetNote): new function.
  757.     (DB_LockRecord): pointers on DB_Getter_GetNoteTitle, DB_Getter_GetNote.
  758.     (DB_Create): test number of Note field. add FIELD_TYPE_NOTE switch
  759.     entry.
  760.     (DB_SupportsFieldType): add FIELD_TYPE_NOTE switch entry.
  761.  
  762.     *  note.c: new file.
  763.  
  764.     *  note.h: new file.
  765.  
  766.     *  db.rcp(alertID_MaxNoteSupport): new alert.
  767.     (formID_Note): new modal form.
  768.     (stringID_Note): new string.
  769.  
  770.     *  enum.h: new alertID_MaxNoteSupport, stringID_Note, formID_Note,
  771.     ctlID_Note_EditField, ctlID_Note_ScrollBar, ctlID_Note_DoneButton.
  772.  
  773.     *  db.h: NoteHandleEvent declaration.
  774.  
  775.     *  main.c(AppHandleEvent): add formID_Note switch entry.
  776.  
  777.     *  io.c(DS_StandardSortCallback): add FIELD_TYPE_NOTE switch entry.
  778.  
  779.     *  grid.c(DrawCell): add gridCellTypeNote switch entry (note used).
  780.     (GridHandleEvent): add gridCellTypeNote switch entry (note used).
  781.  
  782.     *  grid.h: new gridCellTypeNote enum.
  783.  
  784.     *  datasource.h: new FIELD_TYPE_NOTE enum.
  785.  
  786.     *  list.c(ViewModel_GetCellType): add gridCellTypeNote switch entry
  787.     (note used).
  788.     (ViewModel_GetCellString): add FIELD_TYPE_NOTE switch entry.
  789.     (CmpField): add FIELD_TYPE_NOTE switch entry.
  790.  
  791.     *  makefile: note.c compilation.
  792.  
  793. 2001-06-25  Marc Chalain <marc-chalain@voila.fr>
  794.  
  795.     *  langs/fr.rcp: update.
  796.  
  797. 2001-06-25  Marc Chalain <marc-chalain@voila.fr>
  798.     with help from Brian Foley <brianfoley@eircom.net>
  799.  
  800.     Use of keys down/up buttons in the edit view. The use can be setting in
  801.     the Global Prefs popup window: "line" to down/up in the current record,
  802.     "page" to down/up in the records.
  803.     
  804.     *  prefs.c (PopupAppPrefs): 
  805.     
  806.     *  edit.c (EditViewHandleEvent): keyDownEvent management.
  807.     
  808.     *  main.c (InitPrefs): new init of preferences.
  809.     
  810.     *  db.rcp (formID_AppPrefs): new triggers for record scrolling.
  811.     
  812.     *  db.h : new prefFlagRecordUpPage, prefFlagRecordDownPage defines.
  813.  
  814. 2001-06-14  Marc Chalain <marc-chalain@voila.fr>
  815.  
  816.     Extract Sort Editor: with the constant WITHOUT_SORT in config.mak
  817.     you can extract the Sor Editor and win 5 ko (it's not a lot).
  818.  
  819.     *  sort.c (DoQuickSort): move to list.c file
  820.  
  821.     *  list.c (DoQuickSort): move from sort.c.
  822.     (DoCommand): add preprocesor condition.
  823.  
  824.     *  main.c (AppHandleEvent): add preprocesor condition.
  825.  
  826.     *  db.rcp: extract formID_SortEditor, menuID_SortEditorMenu,
  827.     stringID_Sort_Label_D, stringID_Sort_Label_CS, stringID_Help_SortEditor
  828.  
  829.     *  sort.rcp: new file with formID_SortEditor, menuID_SortEditorMenu,
  830.     stringID_Sort_Label_D, stringID_Sort_Label_CS, stringID_Help_SortEditor
  831.  
  832.     *  Makefile: management of the WITHOUT_SORT constant.
  833.  
  834.     *  config.mak: new constant in comment WITHOUT_SORT.
  835.  
  836. 2001-06-07  Marc Chalain <marc-chalain@voila.fr>
  837.  
  838.     Views of ListViews form managed like Categories
  839.  
  840.     *  list.c(SelectListViews): new function.
  841.     (PopupListOptions): deleted.
  842.     (ListViewHandleEvent): frmOpenEvent and frmUpdateEvent entries set up
  843.     the trigger.
  844.     ctlSelectEvent entry new CtlID for the Trigger.
  845.  
  846.     *  enum.h: new stringID_EditListViews, ctlID_ListView_ViewTrigger,
  847.     ctlID_ListView_ViewList entries.
  848.     formID_ListViewOptionsDlg, menuID_ListViewEditorMenu, ctlID_ListViewOptionsDlg_* entries deleted.
  849.  
  850.     *  db.rcp: formID_ListViewOptionsDlg deleted, new Trigger and List in formID_ListView.
  851.     new stringID_EditListViews string
  852.  
  853. 2001-06-01  Marc Chalain <marc-chalain@voila.fr>
  854.  
  855.     popuplist on the header of the listview form.
  856.  
  857.     * list.c(ListViewHandleEvent): change gridHeaderSelectEvent entry.
  858.     popup_menu static global variable.
  859.  
  860.     * popuplist.c: new file with SetupPopupList, FreePopupList, 
  861.     ShowPopupList functions developed from SetupActions... of chooser.c
  862.  
  863.     * chooser.c(ChooserHandleEvent): use popuplist.c
  864.  
  865.     * grid.c: new GridGetBounds function.
  866.  
  867.     * db.rcp(formID_ListView): new ctlID_ListView_ActionList list.
  868.     new stringID_SortAscend and stringID_SortDescend strings defines.
  869.  
  870.     * enum.h: new defines ctlID_ListView_ActionList, stringID_SortAscend,
  871.     stringID_SortDescend.
  872.  
  873. 2001-05-29  Marc Chalain <marc-chalain@voila.fr>
  874.  
  875.     Break io.c file in three parts.
  876.  
  877.     * io.c: contains only standard functions for drivers and main application calls.
  878.     functions with same definition in db3 and db2 drivers (and by more drivers) are declared
  879.     once and begin by "DS_*" (DS_CloseDB, DS_PutView...) if a driver should use a specific
  880.     definition this functions should NOT be changed.
  881.  
  882.     * db3.c: contains "DB_*" functions, driver for db 0.3.x.
  883.  
  884.     * db2.c: contains "OldDB_*" functions, driver for db 0.2.x.
  885.  
  886.     * Makefile: add WITH_DB2 constant management.
  887.     !!!
  888.     !! as MobileDB and JFile3 DB0.2.x can be used as plugin or intagrate in the main application
  889.     !! with WITH_DB2 constant declaration in config.mak
  890.     !!!
  891.  
  892. 2001-05-29  Marc Chalain <marc-chalain@voila.fr>
  893.  
  894.     Add plugin mechanism, and 3 plugins.
  895.  
  896.     * chooser.c (ChooserHandleEvent): add "menuitemID_Plugins", "menuitemID_PluginsAbout"
  897.     menu entries.
  898.  
  899.     * list.c (ListViewHandleEvent): add "menuitemID_Plugins" menu entry.
  900.  
  901.     * edit.c (EditViewHandleEvent): add "menuitemID_Plugins" menu entry.
  902.  
  903.     * enum.h: add "ctlID_PluginListDialog_*", "menuitemID_Plugins*", "formID_PluginListDialog"
  904.     defines.
  905.  
  906.     * main.c (AppHandleEvent): add "formID_PluginListDialog" entry.
  907.     (EventLoop): add "PlugHandleEvent" call to dispatch frmLoadEvent to the Plugins.
  908.     (StartApplication): add "Plug_Setup" call.
  909.     (StopApplication): add "Plug_Restore" call.
  910.  
  911.     * io.c (GetDataSources): add "Plug_GetDriver" call,extract "MobileDB_GetDriver",
  912.     "JFile3_GetDriver" calls.
  913.  
  914.     * datasource.h: extract "MobileDB_GetDriver", "JFile3_GetDriver" declarations.
  915.  
  916.     * plugin.c: new file with "PlugHandleEvent", "Plug_Setup", "Plug_Restore" and
  917.      "Plug_GetDriver" functions.
  918.  
  919.     * plug.h: definitions of plugin.c used by the main application.
  920.  
  921.     * plugin.h: definitions of plugin.c used by the main application and the plugins.
  922.  
  923.     * db.def.in: new file to generate db.def with m4.
  924.  
  925.     * db.rcp: add new "menuitemID_Plugins" menu entries. add "plug.rcp" include.
  926.  
  927.     * plug.rcp: new file with description of "formID_PluginListDialog" to include in db.rcp
  928.  
  929.     * Makefile: add "db.def" entry, add management of constants of config.mak.
  930.  
  931.     * config.mak: new file with constants to declare to change the compilation
  932.     !!!
  933.     !! Now normal compilation doesn't include MobileDb and JFile3 support, you can find them 
  934.     !! in plugin solution, or declare the constants WITH_MOBILEDB and/or WITH_JFILE3
  935.     !!!
  936.  
  937. 2001-05-29  Marc Chalain <marc-chalain@voila.fr>
  938.  
  939.     Add a protected mode to open a database. Now It's impossible to modify a record
  940.     directly, you need to tape on the "Modify" button in the EditView or select "Open
  941.     Unprotected" in the chooser. Now, "Delete" is in the menu of EditView.
  942.  
  943.     * edit.c (EditViewHandleEvent): "ctlID_EditView_DeleteButton" becomes 
  944.     "ctlID_EditView_ModifyButton". Call to "EditViewSetFieldEnabled" function
  945.     (EditViewSetFieldEnabled): new function all fields swap un/usable.
  946.  
  947.     * chooser.c (enum): new value "actionID_OpenUnProtected".
  948.     (popup_menu): new data for "Open UnProtected" mode.
  949.     (ChooserHandleEvent): new "actionID_OpenUnProtected" entry. Manage "protectedmode"
  950.     member data of CurrentSource.
  951.  
  952.     * datasource.h (struct data_source): new member "protectedmode".
  953.  
  954.     * db.rcp: new string "stringID_OpenUnProtected", Modify button in formID_EditView form.
  955.  
  956.     * enum.h: change "ctlID_EditView_DeleteButton" to "ctlID_EditView_ModifyButton", new
  957.     "stringID_OpenUnProtected" define.
  958.  
  959. 2001-05-29  Marc Chalain <marc-chalain@voila.fr>
  960.  
  961.     Change the Menu of each form with a "help" popupmenu. it's to normalize all menu bar.
  962.  
  963.     * db.rcp: all menu entry changed.
  964.  
  965.     * enum.h: new menu entries defines menuitemID_Duplicate, menuitemID_Delete.
  966.  
  967.     * edit.c (EditViewHandleEvent): add menuitemID_Duplicate, menuitemID_Delete 
  968.     menu entries. Duplicate build a copy of the current record if you tape done at the end
  969.  
  970. 2001-05-29  Marc Chalain <marc-chalain@voila.fr>
  971.  
  972.     Quicksort functionality: tape on the header of the listview to sort.
  973.  
  974.     * list.c (ListViewHandleEvent): add gridHeaderSelectEvent event entry to
  975.     sort list with DoQuickSort
  976.  
  977.     * sort.c (DoQuickSort): new function
  978.  
  979. 2001-04-29  Tom Dyas  <tdyas@users.sourceforge.net>
  980.  
  981.     * grid.c (GridInit): Initialize new color table entries for
  982.     highlighted rows.
  983.     (DrawRow): Use new color table entries for highlighted rows.
  984.     (GridDraw): GridUICellFill renamed to GridUICellBackground. Set
  985.     background color for clearing unused portion of row area.
  986.     (ReplaceTwoColors): New function. Adapted from PalmOS 4.0 source
  987.     code. Swaps two colors on the screen.
  988.     (DoCellColorSwap): New function. Acts as a wrapper around
  989.     ReplaceTwoColors() for SelectCell().
  990.     (SelectCell): Use DoCellColorSwap() to just swap colors on the
  991.     screen instead of redrawing the entire row.
  992.     (DrawHeaderCell): Removed in favor of color swapping.
  993.     (SelectHeaderCell): Use ReplaceTwoColors() to just swap colors on
  994.     the screen instead of redrawing the entire row.
  995.     (GridHandleEvent): Renamed event parameter to just "e".
  996.     (GridGetColor): New public function. Allows callers to retrieve
  997.     color table entries.
  998.     (GridSetColor): New public function. Allows callers to set color
  999.     table entries.
  1000.  
  1001.     * grid.h: Prototypes for GridGetColor() and GridSetColor(). Add
  1002.     color table entries for highlighted rows instead of using the
  1003.     entries for selected rows.
  1004.  
  1005.     * docs/building.txt: Mention prc-tools 2.1pre3 (2.0.92).
  1006.  
  1007. 2001-04-28  Tom Dyas  <tdyas@users.sourceforge.net>
  1008.  
  1009.     * docs/building.txt: SDK 4.0 is now required for building.
  1010.  
  1011.     * edit.c: Defined min and max as inline functions since SDK 4.0
  1012.     does not define them by default anymore.
  1013.  
  1014.     * list.c (DoCommand): Use GridSetTopIndex() to access the top
  1015.     index instead of direct access to the grid structure.
  1016.     (ListViewHandleEvent): Likewise.
  1017.  
  1018.     * util.c: Include only <PalmOSGlue.h> to bring in the glue
  1019.     includes. <CharAttr.h> is needed for some missing definitions in
  1020.     <TxtGlue.h>.
  1021.     (MatchString): Call the new and documented form of
  1022.     IntlGlueGetRoutineAddress().
  1023.     
  1024.     * grid.c: Massive changes to support color.
  1025.     * grid.h (GridUIColorTableEntries): New enumeration which defines
  1026.     the colors for various aspects of the grid UI.
  1027.     (GridScreenRow): Rename some of the variables.
  1028.     (GridType): Rename more variables.
  1029.     (GridEventsEnum): Rename the grid events to be more descriptive.
  1030.     (GridSetHeaderLook): Changed prototype to allow the selectability
  1031.     of the header to be changed. Removed invert option.
  1032.     (GridGetTopIndex): New function. Returns the topmost index.
  1033.     (GridSetTopIndex): New function. Sets the topmost index.
  1034.     
  1035. 2001-04-05  Tom Dyas  <tdyas@users.sourceforge.net>
  1036.  
  1037.     * util.c (ShowModalMessage): Frame type is now a parameter. Reduce
  1038.     the vertical size of the popup. Cleanup the handling of PalmOS
  1039.     3.5+.
  1040.     (HideModalMessage): Call FrmUpdateForm() to trigger a redraw if an
  1041.     error was encountered in ShowModalMessage() while saving the
  1042.     screen area occupied by the popup.
  1043.     (ShowWorkingIndicator): Add boldRoundFrame as the new frame
  1044.     parameter to ShowModalMessage().
  1045.     * db.h: Update prototype of ShowModalMessage().
  1046.  
  1047.     Patch from Marc Chalain <marc-chalain@voila.fr>:
  1048.     * grid.h: Add new event gridHeaderSelectEvent which is triggered
  1049.     when the grid header is tapped.
  1050.     * grid.c (GridHandleEvent): Generate gridHeaderSelectEvent when
  1051.     the a grid header cell is tapped.
  1052.  
  1053. 2001-03-31  Tom Dyas  <tdyas@users.sourceforge.net>
  1054.  
  1055.     * util.c (ShowModalMessage): New function based on old
  1056.     DrawWorkingIndicator(). Displays a single line string in a modal
  1057.     window.
  1058.     (HideModalMessage): New function based on old
  1059.     EraseWorkingIndicator(). Restores the screen to the state before
  1060.     ShowModalMessage() was called.
  1061.     (ShowWorkingIndicator): Renamed from
  1062.     DrawWorkingIndicator(). Retrieve "Working..." string, then call
  1063.     ShowModalMessage().
  1064.     (EraseWorkingIndicator): Renamed form
  1065.     EraseWorkingIndicator(). Just calls HideModalMessage().
  1066.     * db.h: Update prototypes to above changes.
  1067.  
  1068.     * chooser.c (DoDuplicate): DrawWorkingIndicator() ->
  1069.     ShowWorkingIndicator(). EraseWorkingIndicator() ->
  1070.     HideWorkingIndicator().
  1071.     * design.c (Rebuild): Likewise.
  1072.     * sort.c (DoSort): Likewise.
  1073.  
  1074. 2001-03-31  Tom Dyas  <tdyas@users.sourceforge.net>
  1075.  
  1076.     * Version 0.3.1
  1077.  
  1078.     * NEWS: Update the release date of 0.3.1.
  1079.     * README_fr: French translation of README from Christian Grigis
  1080.     <glove@mooch.dyndns.org>.
  1081.  
  1082. 2001-03-24  Tom Dyas  <tdyas@users.sourceforge.net>
  1083.  
  1084.     * README: Reworked for the new release.
  1085.     * build-zip.sh: Build a release for each of the supported
  1086.     languages.
  1087.  
  1088. 2001-03-19  Tom Dyas  <tdyas@users.sourceforge.net>
  1089.  
  1090.     * langs/it.rcp: Update Italian translation from Roberto
  1091.     A. Foglietta <robang@libero.it>.
  1092.     * langs/fr.rcp: Update French translation from Christian Grigis
  1093.     <glove@earthling.net>.
  1094.  
  1095. 2001-03-12  Tom Dyas  <tdyas@users.sourceforge.net>
  1096.  
  1097.     * langs/en.rcp: Spell words correctly.
  1098.     * langs/pt.rcp: Portuguese translation update from Pedro Pessoa
  1099.     <pedro.pessoa@pobox.com>.
  1100.     * langs/fr.rcp: Language tag should be FR and not SAMPLE.
  1101.  
  1102. 2001-03-10  Tom Dyas  <tdyas@users.sourceforge.net>
  1103.  
  1104.     * langs/it.rcp: Italian translation from Roberto A. Foglietta
  1105.     <robang@libero.it>.
  1106.     * Makefile: Add targets db-it.prc and ts-bin-it to build the
  1107.     Italian version of DB.
  1108.     * db.rcp: Include the new it.rcp file.
  1109.     * README_it: Italian translation of the README file.
  1110.     * README: Minor edits.
  1111.  
  1112. 2001-03-05  Tom Dyas  <tdyas@users.sourceforge.net>
  1113.  
  1114.     * NEWS: Add the new features and changes in 0.3.1.
  1115.  
  1116.     * edit.c (EditViewCustomDraw): Use PrefGetPreference() to retrieve
  1117.     the system time and date formats.
  1118.  
  1119.     * list.c (ViewModel_GetCellString): Use the short date format
  1120.     instead of the long format in the list view.
  1121.  
  1122. 2001-03-02  Tom Dyas  <tdyas@users.sourceforge.net>
  1123.  
  1124.     * design.c (HandleContextMenu): Remove the "Properties" choice
  1125.     from the popup list since it is not used at this time.
  1126.     (UpdateScrollers): Remove old code which handled the Add and Del
  1127.     buttons.
  1128.     * sort.c (SortEditor_HandleEvent): Hide the name label and name
  1129.     field since they are unused at this time.
  1130.     * list.c (ListViewHandleEvent): Respond correctly to
  1131.     frmUpdateEvent by redrawing the entire display.
  1132.  
  1133. 2001-03-01  Tom Dyas  <tdyas@users.sourceforge.net>
  1134.  
  1135.     * langs/de.rcp: update from Thorsten Tietz
  1136.     <thorsten.tietz@gmx.de>.
  1137.  
  1138.     * util.c (GetStringResource): Renamed from GetStringPtr().
  1139.     (PutStringResource): New function to free resources associated
  1140.     with string return from GetStringResource().
  1141.     (CopyStringResource): Rewritten to call DmReleaseResource() when
  1142.     done with the string resource.
  1143.     * db.h: Match prototypes with the actual defintions in util.c
  1144.  
  1145.     * JFile3.c (JFile3_GetView): GetStringPtr() ->
  1146.     GetStringResource(). Use PutStringResource().
  1147.     * MobileDB.c (MobileDB_GetView): Likewise.
  1148.     * io.c (DB_Create): Likewise.
  1149.     (OldDB_GetView): Likewise.
  1150.     * sort.c (DrawTableLabels): Likewise.
  1151.     * design.c (InsertField): Likewise.
  1152.     (FillLocalSchema): Likewise.
  1153.     (DesignViewHandleEvent): Likewise. Plus remove dead code from old
  1154.     add/del buttons.
  1155.     * list.c (FindDialogHandleEvent): Use CopyStringResource() instead
  1156.     of duplicating copy code.
  1157.     * prefs.c (PopupAppPrefs): Use CopyStringResource() instead of
  1158.     GetStringPtr().
  1159.     * chooser.c (SetupActions): Use CopyStringResource() instead of
  1160.     duplicating copy code.
  1161.     (PopupOptionsDialog): Use CopyStringResource() instead of
  1162.     GetStringPtr().
  1163.  
  1164. 2001-02-25  Tom Dyas  <tdyas@users.sourceforge.net>
  1165.  
  1166.     * db.rcp: Add "Help..." item to design view menu. Remove
  1167.     stringID_Append and stringID_Remove. Rename stringID_Remove2 to
  1168.     stringID_Remove. Add stringID_Help_DesignView.
  1169.     Remove formID_FieldSelectDialog since it is no longer used.
  1170.     * enum.h: Renumber string ID values with the removals and
  1171.     additions. Remove formID_FieldSelectDialog from the formID list
  1172.     and rebumber.
  1173.     * langs/en.rcp: Add help string for the design view.
  1174.     * langs/de.rcp: Some strings that need translation.
  1175.     * langs/pt.rcp: Likewise.
  1176.     * langs/sample.rcp: Likewise.
  1177.     * design.c (HandleContextMenu): stringID_Remove2 -> stringID_Remove
  1178.     (DesignViewHandleEvent): Respond to menuitemID_Help by displaying
  1179.     the help screen.
  1180.     * listprop.c (HandleContextMenu): stringID_Remove2 ->
  1181.     stringID_Remove
  1182.     * sort.c (HandleContextMenu): Likewise.
  1183.  
  1184. 2001-02-14  Tom Dyas  <tdyas@users.sourceforge.net>
  1185.  
  1186.     * db.def: Rename "foo" section as "ui1sect". Rename "editsect" as
  1187.     "ui2sect".
  1188.     * db.h: Redo the macros used to place functions in other code
  1189.     segments. Put DbgPrintF(), DrawWorkingIndicator(), and
  1190.     EraseWorkingIndicator() in section "ui2sect".
  1191.     * linkaware.h: Use "ui2sect" section instead of "foo" section.
  1192.  
  1193.     * design.c (HandleContextMenu): Size the width of the popup list
  1194.     based on the menu choice strings.
  1195.  
  1196.     * datasource.h: Add prototype for GetInternalDataSources().
  1197.     * find.c (GlobalSearch): Call GetInternalDataSources() instead of
  1198.     GetDataSources() due to problems with drivers in other code
  1199.     sections.
  1200.     * io.c (GetInternalDataSources): Remove "static" keyword.
  1201.  
  1202. 2001-01-24  Tom Dyas  <tdyas@users.sourceforge.net>
  1203.  
  1204.     * io.c (DB_Sort): Avoid crashing by filling in the GetDate() and
  1205.     GetTime() methods of the getter.
  1206.     * JFile3.c (JFile3_Sort): Likewise.
  1207.  
  1208. 2001-01-21  Tom Dyas  <tdyas@users.sourceforge.net>
  1209.  
  1210.     * grid.c (FillColumnInfo): Bug fix. Detect when the righthand
  1211.     column is clipped. Set right arrow based on the detecting
  1212.     clipping. Patch from Greg Alt <galt@eskimo.com>.
  1213.  
  1214. 2001-01-11  Tom Dyas  <tdyas@users.sourceforge.net>
  1215.  
  1216.     * io.c (DS_StandardSortCallback): Compare FIELD_TYPE_DATE and
  1217.     FIELD_TYPE_TIME field types. Assume unknown field types are equal.
  1218.     * chooser.c (Duplicate_GetDate): New function. Part of the getter
  1219.     used by the duplicate code.
  1220.     (Duplicate_GetTime): New function. Part of the getter used by the
  1221.     duplicate code.
  1222.     (DoDuplicate): Reference Duplicate_GetDate() and
  1223.     Duplicate_GetTime().
  1224.     
  1225. 2001-01-10  Tom Dyas  <tdyas@users.sourceforge.net>
  1226.  
  1227.     * docs/format.txt: Document the new date and time fields. Document
  1228.     record structure.
  1229.  
  1230.     * datasource.h (DataSourceFieldType): Add FIELD_TYPE_DATE and
  1231.     FIELD_TYPE_TIME for date and time field types.
  1232.     (DataSourceGetter): Add GetDate() and GetTime() methods
  1233.     corresponding to FIELD_TYPE_DATE and FIELD_TYPE_TIME.
  1234.  
  1235.     * io.c (ExtractSchema): Recognize date and time fields.
  1236.     (DB_PackedRecordSize): Likewise.
  1237.     (DB_PackRecord): Pack date and time fields into the record.
  1238.     (DB_Getter_GetDate): New function. Unpacks date fields.
  1239.     (DB_Getter_GetTime): New function. Unpacks time fields.
  1240.     (DB_LockRecord): Reference DB_Getter_GetDate() and
  1241.     DB_Getter_GetTime() for the getter.
  1242.     (DB_Create): Recognize date and time fields.
  1243.     (DB_SupportsFieldType): Likewise.
  1244.     (OldDB_Getter_GetData): New dummy function for safety.
  1245.     (OldDB_Getter_GetTime): Likewise.
  1246.     (OldDB_LockRecord): Reference the two dummy getter functions
  1247.     above.
  1248.     (OldDB_SupportsFieldType): New function. The legacy code needs its
  1249.     own list of supported field types now that the new format can
  1250.     support more field types.
  1251.     (OldDB_GetDriver): Reference OldDB_SupportsFieldType().
  1252.     
  1253.     * JFile3.c (JFile3_PackRecord): Add support for date and time
  1254.     fields.
  1255.     (JFile3_Getter_GetDate): New function. Returns date fields.
  1256.     (JFile3_Getter_GetTime): New function. Returns time fields.
  1257.     (JFile3_LockRecord): Reference JFile3_Getter_GetDate() and
  1258.     JFile3_Getter_GetTime() when setting up the getter.
  1259.     (JFile3_SetField): Allow the in-place setting of boolean fields.
  1260.     (JFile3_OpenPDB): Decode date and time field types to the generic
  1261.     field types.
  1262.     (JFile3_SupportsFieldType): List support for date and time fields.
  1263.  
  1264.     * list.c (ViewModel_GetCellString): Support FIELD_TYPE_DATE and
  1265.     FIELD_TYPE_TIME.
  1266.  
  1267.     * listprop.c (LoadTable): Reworked the table code so rows are made
  1268.     unusable after the for loop and not in it.
  1269.     * sort.c (LoadTable): Likewise.
  1270.     
  1271.     * design.c (types): Add entries for FIELD_TYPE_DATE and
  1272.     FIELD_TYPE_TIME.
  1273.     (DrawPopupIndicator): New functions. Draw the popup indicator
  1274.     arrow.
  1275.     (LoadTable): Moved the code around so that rows are only made
  1276.     usable in the for loop and then unusable after the loop. Plus
  1277.     support the popup menu.
  1278.     (SetColumnWidths): Setup the new context menu column.
  1279.     (Rebuild_GetDate): New function. Implements the GetDate() method
  1280.     for the getter used by the rebuild code.
  1281.     (Rebuild_GetTime): Likewise for GetTime() method.
  1282.     (rebuild_getter): Reference Rebuild_GetDate() and
  1283.     Rebuild_GetTime().
  1284.     (Rebuild): Use DrawWorkingIndicator() and EraseWorkingIndicator()
  1285.     to displays the "Working..." message.
  1286.     (PopupFieldSelectDialog): Removed.
  1287.     (HandleContextMenu): New function. Displays the context menu and
  1288.     then selects the correct action.
  1289.     (SetupPopupList): Use CopyStringResource() to get a local copy of
  1290.     the string resource.
  1291.     (DesignViewHandleEvent:tblSelectEvent): Call HandleContextMenu()
  1292.     when the popup column is tapped.
  1293.     (DesignViewHandleEvent:ctlSelectEvent): Remove code for
  1294.     ctlID_DesignView_AddButton and ctlID_DesignView_DelButton since
  1295.     the buttons no longer exist.
  1296.  
  1297.     * edit.c (EditViewFieldData): Add "datetime" field to store
  1298.     information for date and time fields.
  1299.     (EditViewCustomDraw): New function. Custom table drawing function
  1300.     used for date and time fields.
  1301.     (EditViewGetFieldHeight): Support for FIELD_TYPE_DATE and
  1302.     FIELD_TYPE_TIME.
  1303.     (EditViewInitTableRow): Likewise.
  1304.     (EditViewInitTable): Make EditViewCustomDraw() the custom draw
  1305.     procedure for the second column.
  1306.     (EditView_GetDate): New function. Implements the GetDate() method
  1307.     for the getter used by the edit view to add/update records.
  1308.     (EditView_GetTime): Likewise except for the GetTime() method.
  1309.     (EditViewGetter): Reference EditView_GetDate() and
  1310.     EditView_GetTime().
  1311.     (SetupRecordData): Setup date and time fields correctly.
  1312.     (EditViewHandleEvent): Taps on date fields display a date
  1313.     selector. Taps on time fields display a time selector.
  1314.     
  1315.     * chooser.c (LoadTable): Move the table setup calls inside the
  1316.     validity check.
  1317.     (InitTable): Set the column sizes dyanmically based on the actual
  1318.     table width.
  1319.  
  1320.     * db.rcp (formID_DesignView): Remove the "Ins" and "Del"
  1321.     buttons. Extra column in the table for popup context menu. Extra
  1322.     list for the context menu.
  1323.     * enum.h: Make constants sync with resource file.
  1324.     
  1325. 2001-01-07  Tom Dyas  <tdyas@users.sourceforge.net>
  1326.  
  1327.     * Makefile: Add -allowEditID option to pilrc invocation so that no
  1328.     warning messages complaining about the Edit menu IDs are
  1329.     displayed.
  1330.     * docs/building.txt: Mention that PilRC 2.7a or higher is now
  1331.     required.
  1332.  
  1333. 2000-12-20  Tom Dyas  <tdyas@users.sourceforge.net>
  1334.  
  1335.     * listprop.c (ListViewEditor_HandleEvent): If the field name is
  1336.     not editable but the width is editable, then put focus on the
  1337.     width if the field name is tapped.
  1338.     (DrawWidth): Crash fix. Index cols[] array on colNum and not col
  1339.     variable. (should probably use a better naming scheme)
  1340.     * db.h: Make ListViewEditor_HandleEvent() be in SECT_UI.
  1341.  
  1342. 2000-12-19  Tom Dyas  <tdyas@users.sourceforge.net>
  1343.  
  1344.     * Makefile: Generate resources into the .res subdirectory so that
  1345.     the toplevel directory is not cluttered with lots of resource
  1346.     files.
  1347.     * docs/building.txt: Update to mention that prc-tools 2.1pre1
  1348.     (2.0.90) and SDK 3.5update1 are required.
  1349.     * langs/pt.rcp: Update from Pedro Pessoa.
  1350.     * db.rcp: Add new alert used when a feature only on PalmOS 3.5 or
  1351.     higher has been activated.
  1352.     * enum.h: Add constant for the new alert.
  1353.     * chooser.c (ChooserHandleEvent): Show the alert if the security
  1354.     dialog is activated on PalmOS version below 3.5.
  1355.     (LoadTable): Handle changes in secret status while
  1356.     maskPrivateRecords is in effect.
  1357.  
  1358. 2000-12-15  Tom Dyas  <tdyas@users.sourceforge.net>
  1359.  
  1360.     * JFile3.c: New file. Implements support for the JFile v3.x
  1361.     database format.
  1362.     * Makefile (OBJS): Add JFile3.o
  1363.     * datasource.h: Add sourceID_JFile3 to DataSourceIDEnum
  1364.     enumeration. Prototype for JFile3_GetDriver(). Prototypes for the
  1365.     DS_PDB_GetKey(), DS_PDB_GetPDB(), DS_PDB_GetTitle(), and
  1366.     DS_PDB_SetTitle() generic data source methods.
  1367.     * io.c (GetDataSources): Call JFile3_GetDriver() and add it to the
  1368.     drivers list.
  1369.     (DS_PDB_GetKey): New function. Generic implementation of GetKey()
  1370.     data source method for PDB databases.
  1371.     (DS_PDB_GetPDB): Similar for GetPDB() method.
  1372.     (DS_PDB_GetTitle): Similar for GetTitle() method.
  1373.     (DS_PDB_SetTitle): Similar for SetTitle() method.
  1374.     (DB_GetKey): Removed in favor of generic version.
  1375.     (DB_GetPDB): Likewise.
  1376.     (DB_GetTitle): Likewise.
  1377.     (DB_SetTitle): Likewise.
  1378.     (DB_Open): Point at generic implementations for the GetKey(),
  1379.     KeyPDB(), GetTitle(), and SetTitle() methods.
  1380.     (OldDB_Open): Likewise.
  1381.     * MobileDB.c (MobileDB_GetKey): Removed in favor of generic
  1382.     version.
  1383.     (MobileDB_GetPDB): Likewise.
  1384.     (MobileDB_GetTitle): Likewise.
  1385.     (MobileDB_SetTitle): Likewise.
  1386.     (MobileDB_OpenPDB): Point at generic implementations for the
  1387.     GetKey(), KeyPDB(), GetTitle(), and SetTitle() methods.
  1388.  
  1389. 2000-12-14  Tom Dyas  <tdyas@users.sourceforge.net>
  1390.  
  1391.     * chooser.c (DoSecurity): New function. Allow the security level
  1392.     to be changed on PalmOS 3.5 and higher.
  1393.     (ChooserHandleEvent): Respond to menuCmdBarOpenEvent by adding the
  1394.     security button to the command bar. Respond to menuitemID_Security
  1395.     by calling DoSecurity().
  1396.     updateFontChanged -> updateInitTable
  1397.     * db.rcp: Add "Security..." item to the "Options" menu.
  1398.     * enum.h: Add menuitemID_Security.
  1399.  
  1400. 2000-12-06  Tom Dyas  <tdyas@users.sourceforge.net>
  1401.  
  1402.     * datasource.h (DataSourceCapability): Add
  1403.     DS_CAPABLE_LISTVIEW_NAME_EDIT.
  1404.     * MobileDB.c (MobileDB_Capable): Respond to
  1405.     DS_CAPABLE_LISTVIEW_NAME_EDIT.
  1406.     * io.c (DB_Capable): Likewise.
  1407.     (OldDB_Capable): Likewise.
  1408.     * db.rcp (formID_ListViewEditor): Remove Add button. Modify table
  1409.     for popup column. New list for the context menu.
  1410.     * enum.h: Add constant for context menu list.
  1411.     * listprop.c (DrawPopupIndicator): New functions. Draws the
  1412.     context menu arrow.
  1413.     (LoadTable): Setup the context menu column.
  1414.     (InitTable): Likewise.
  1415.     (InsertEntry): Renamed from AddColumn() and extended to insert
  1416.     anywhere in the list view.
  1417.     (DeleteEntry): Renamed from DeleteColumn().
  1418.     (HandleContextMenu): New function. Poppup the context menu and
  1419.     then implement the add/delete action if necessary.
  1420.     (ListViewEditor_HandleEvent): Do not add "-- REMOVE --" to the
  1421.     bottom of the field names list. Respond to tblSelectEvent on the
  1422.     popup column by calling HandleContextMenu(). Remove code to handle
  1423.     Add button.
  1424.     
  1425. 2000-10-29  Tom Dyas  <tdyas@users.sourceforge.net>
  1426.  
  1427.     * chooser.c (DuplicateData): New structure to hold data for the
  1428.     duplicate getter.
  1429.     (Duplicate_GetString): New function. Part of a getter object to
  1430.     convert between field types during a duplicate operation.
  1431.     (Duplicate_GetInteger): Likewise.
  1432.     (Duplicate_GetBoolean): Likewise.
  1433.     (DoDuplicate): Use DrawWorkingIndicator() and
  1434.     EraseWorkingIndicator() to show/hide the "Working..." message
  1435.     box. Use the duplicate getter functions to handle the conversion
  1436.     between data types if need be.
  1437.     * MobileDB.c (SortCallbackData): New structure for passing
  1438.     information between the Sort() method and the sort callback.
  1439.     (MobileDB_UnpackRecord): Records can have fields missing in which
  1440.     case we must fill in the empty string.
  1441.     (MobileDB_LockRecord): Allocate MAX_FIELDS space just in case the
  1442.     record has an unexpeted overrun.
  1443.     (MobileDB_SortCallback): Callback function called by PalmOS to
  1444.     compare records during a sort.
  1445.     (MobileDB_Sort): Implementation of the Sort() method for MobileDB
  1446.     databases.
  1447.     (MobileDB_OpenPDB): Use MobileDB_Sort() for the Sort() method.
  1448.     * util.c (DrawWorkingIndicator): Draw the "Working..." indicator
  1449.     in the center of the screen.
  1450.     (EraseWorkingIndicator): Remove the indicator.
  1451.     * db.h: Prototypes for DrawWorkingIndicator() and
  1452.     EraseWorkingIndicator()
  1453.     * db.rcp (formID_SortEditor): Changed the UI to be bit
  1454.     better. Added a menu to the form as well. Strings for the UI as
  1455.     well.
  1456.     * enum.h: Constants for the changed UI, new menu, and strings.
  1457.     * langs/en.rcp: English translation for some of the strings.
  1458.     * sort.c: Added support for the case sensitive sorting option. New
  1459.     popup menu. Removed support for the removal option that was
  1460.     embedded in the field popup as well as the "Add" button.
  1461.     
  1462. 2000-10-26  Tom Dyas  <tdyas@users.sourceforge.net>
  1463.  
  1464.     * README: Point at the new Web site.
  1465.     * TODO: Removed one TODO about sorting.
  1466.     * db.rcp (alertID_About): Point at the new Web site.
  1467.     * langs/pt.rcp: Update from Pedro Pessoa <pedro.pessoa@pobox.com>.
  1468.     * langs/de.rcp: Update from Thorsten Tietz <thorsten.tietz@gmx.de>.
  1469.     * MobileDB.c (struct private_data): Add lfind_case_sensitive and
  1470.     lfind_whole_word variables so the local find status can be
  1471.     remembered while a database is open.
  1472.     (MobileDB_GetAppInfoPtr): New function. Return a locked pointer to
  1473.     the app info block.
  1474.     (MobileDB_GetOption_Boolean): Handle optionID_DisableGlobalFind by
  1475.     looking at the MobileDB dontSearch header setting. Respond to
  1476.     local find options by looking in the private data.
  1477.     (MobileDB_SetOption_Boolean): Set all of the above stuff.
  1478.     (MobileDB_CheckTitle): Removed in favor of common routine.
  1479.     (MobileDB_Delete): Likewise.
  1480.     (MobileDB_CompareKey): Likewise.
  1481.     (MobileDB_IsPresent): Call common routine DS_PDB_IsPresent().
  1482.     (MobileDB_GetDriver): CheckTitle() -> DS_PDB_CheckTitle().
  1483.     Delete() -> DS_PDB_Delete().
  1484.     CompareKey() -> DS_PDB_CompareKey().
  1485.     * datasource.h (DataSourceChooserKey): Public version of the
  1486.     ChooserKey structure that was in io.c. Prototypes for the data
  1487.     source driver support functions.
  1488.     * io.c: Moved ChooserKey to datasource.h as DataSourceChooserKey.
  1489.     ChooserKey -> DataSourceChooserKey everywhere.
  1490.     (DS_PDB_CheckTitle): New function. CheckTitle() for PDB databases.
  1491.     (DS_PDB_Delete): New function. Delete() for PDB databases.
  1492.     (DS_PDB_IsPresent): New function. IsPresent() for PDB databases.
  1493.     (DS_PDB_CompareKey): New function. CompareKey() for PDB databases.
  1494.     (DB_CheckTitle): Removed.
  1495.     (DB_Delete): Removed.
  1496.     (DB_CompareKey): Removed.
  1497.     (DB_IsPresent): Call DS_PDB_IsPresent().
  1498.     (DB_GetDriver): Moved under the other DB format code. Use
  1499.     DS_PDB_CheckTitle(), DS_PDB_Delete(), DS_PDB_CompareKey().
  1500.     (OldDB_IsPresent): Call DS_PDB_IsPresent().
  1501.     (OldDB_GetDriver): Use DS_PDB_CheckTitle(), DS_PDB_Delete(),
  1502.     DS_PDB_CompareKey().
  1503.  
  1504. 2000-10-25  Tom Dyas  <tdyas@users.sourceforge.net>
  1505.  
  1506.     * MobileDB.c: New file. Implements a data source driver which can
  1507.     read/write MobileDB databases.
  1508.     * Makefile (OBJS): MobileDB.o added to list.
  1509.     * io.c (DS_PDB_Enumerate): Renamed from PDB_Enumerate() and static
  1510.     linkage removed.
  1511.     (DS_PDB_GlobalFind): Renamed from PDB_GlobalFind() and static
  1512.     linkage removed.
  1513.     (DS_PDB_Beam): Renamed from PDB_Beam() and static linkage removed.
  1514.     (DB_Enumerate): Use DS_PDB_Enumerate().
  1515.     (DB_GlobalFind): Use DS_PDB_GlobalFind().
  1516.     (OldDB_Enumerate): Use DS_PDB_Enumerate().
  1517.     (OldDB_GlobalFind): Use DS_PDB_GlobalFind().
  1518.     (OldDB_GetDriver): New function. Fills out a DataSourceDriver
  1519.     structure for the DB 0.2.x format. Code moved from
  1520.     GetInternalDataSources().
  1521.     (DB_GetDriver): New function. Fills out a DataSourceDriver
  1522.     structure for the native DB format. Code moved from
  1523.     GetInternalDataSources().
  1524.     (GetInternalDataSources): Code moved to DB_GetDriver() and
  1525.     OldDB_GetDriver(). Code just links the two together.
  1526.     (GetDataSources): Call MobileDB_GetDriver() and append result to
  1527.     drivers list.
  1528.     * datasource.h (DataSourceIDEnum): Add sourceID_MobileDB.
  1529.     Prototypes for DS_PDB_Enumerate(), DS_PDB_GlobalFind(),
  1530.     DS_PDB_Beam, and MobileDB_GetDriver().
  1531.     * db.def: New code section "drvsect" for data source drivers other
  1532.     than the native drivers.
  1533.     * list.c (DoCommand): Send a frmUpdate event to redraw the grid.
  1534.     * listprop.c (DrawFieldLabel): Use the correct variable to index
  1535.     the column number that is being displayed.
  1536.  
  1537. 2000-10-21  Tom Dyas  <tdyas@users.sourceforge.net>
  1538.  
  1539.     * langs/de.rcp: Updated with new strings.
  1540.     * langs/pt.tcp: Likewise.
  1541.     * db.rcp: Remove formID_FieldEditDialog.
  1542.     Added help strings for list view display options dialog and local
  1543.     find dialog.
  1544.     * enum.h: Constants for new help strings.
  1545.  
  1546. 2000-10-20  Tom Dyas  <tdyas@users.sourceforge.net>
  1547.  
  1548.     * names.c (NamesEditorHandleEvent): Use CopyStringResource() to
  1549.     obtain a localized version of the button label. Free the label
  1550.     when the form closes.
  1551.     * util.c: New function. CopyStringResource() returns a copy of a
  1552.     string resource instead of a pointer like GetStringPtr().
  1553.     * db.h: Prototype for CopyStringResource().
  1554.     * db.rcp: Added string resources for "Edit" and "View".
  1555.     * enum.h: Constants for the new string resources.
  1556.  
  1557. 2000-10-18  Tom Dyas  <tdyas@users.sourceforge.net>
  1558.  
  1559.     * langs/en.rcp: New file. Contains strings to large to place in
  1560.     the main resource file.
  1561.     * Makefile (db-en.prc): Renamed target from db.prc.
  1562.     (ts-res): Add dependencies on the langs/*.rcp files.
  1563.     (ts-bin-en): Renamed target from ts-bin.
  1564.     (CFLAGS): Add -Wall -Werror to force more warnings.
  1565.     * db.rcp: Add help strings for chooser and its dialogs.
  1566.     * enum.h: Matching constants for the new strings.
  1567.     * chooser.c: Removed unused variables. Handle all enumerations
  1568.     values in switch statements. A few possible uninitialized uses.
  1569.     * design.c: Likewise.
  1570.     * edit.c: Likewise.
  1571.     * find.c (GFindCallback): Likewise.
  1572.     * grid.c: Likewise plus added include of "db.h" to get
  1573.     MyWinDrawTruncChars() prototype.
  1574.     * io.c: Likewise plus added include of <TxtGlue.h> to get
  1575.     prototypes for TxtGlueCompare() and TxtGlueCaselessCompare().
  1576.     * list.c: Likewise.
  1577.     * listprop.c: Likewise.
  1578.     * main.c: Likewise.
  1579.     * prefs.c: Likewise.
  1580.     * sort.c: Likewise.
  1581.     * util.c: Likewise.
  1582.  
  1583. 2000-10-17  Tom Dyas  <tdyas@users.sourceforge.net>
  1584.  
  1585.     * names.c: New file. Contains the Names Editor which manages list
  1586.     the list views.
  1587.     * datasource.h (DataSourceCapability): New enumeration. Defines
  1588.     various capabilities that a data source is capable of.
  1589.     (DataSourceOperations): Added DeleteView() and Capable() methods
  1590.     which do what their names suggest.
  1591.     * db.h: Prototypes for ListViewEditor_ViewNum and
  1592.     NamesEditorHandleEvent.
  1593.     * db.rcp (formID_ListViewEditor): Point at menu
  1594.     menuID_ListViewEditorMenu. Removed the name selector.
  1595.     (formID_SortEditor): Changed title. Changed "Done" button to
  1596.     "Sort". Removed unused selector.
  1597.     (formID_NamesEditor): New form for the list view global editor.
  1598.     (menuID_ListViewMenu): Reordered and renamed some of the items in
  1599.     the "Options" menu.
  1600.     (menuID_*): Use the system edit menu IDs and not our own ones.
  1601.     * enum.h: Matched constants to db.rcp.
  1602.     * io.c (DB_InstallAppInfoBlock): Factored the common code from the
  1603.     old AddChunk() and ReplaceChunk() which installs a new app info
  1604.     block.
  1605.     (DB_Chunk_Append): Renamed from AddChunk(). Use
  1606.     DB_InstallAppInfoBlock().
  1607.     (DB_Chunk_Replace): Renamed from ReplaceChunk(). Fixed so it
  1608.     actually works if some chunks follow the replaced chunk. Use
  1609.     DB_InstallAppInfoBlock().
  1610.     (DB_Chunk_Delete): New function. Deletes a chunk.
  1611.     (DB_DeleteView): New function. Implements the DeleteView() method
  1612.     for DB databases.
  1613.     (DB_Capable): New function. Implements the Capable() method for DB
  1614.     databases.
  1615.     (DB_Open): Use DB_DeleteView() and DB_Capable().
  1616.     (OldDB_Capable): New function. Implements the Capable() method for
  1617.     DB 0.2.x databases.
  1618.     (OldDB_Open): Use OldDB_Capable().
  1619.     * list.c: Renamed view -> ActiveView.
  1620.     (PopupListOptions): Displays a dialog to set display options for
  1621.     the list view.
  1622.     (DoCommand): Trigger the Names Editor when editing list
  1623.     views. Trigger Sort Editor when sort option is selected.
  1624.     (ListViewHandleEvent,frmUpdateEvent): Handle the new
  1625.     updateModelChanged signal.
  1626.     * listprop.c (DrawFieldName): New function. Draws the field label
  1627.     when it cannot be edited.
  1628.     (DrawWidth): New function. Draws the width when it cannot be
  1629.     edited.
  1630.     (LoadTable): Check editing capabilities when setting up the table.
  1631.     (InitTable): Tell the table about DrawFieldName() and DrawWidth().
  1632.     (GetDefinition): Allocate the view name handle correctly.
  1633.     (ListViewEditor_HandleEvent): Use ListViewEditor_ViewNum. Check
  1634.     capabilities when setting up Add button and REMOVE option.
  1635.     * main.c (AppHandleEvent): Remove typecasts. Handle
  1636.     formID_NamesEditor.
  1637.     * util.c (GetFocusedField): Removed. Not needed now that we don't
  1638.     handle field menu items ourselves.
  1639.     (HandleCommonMenuEvent): Removed all the field menu items.
  1640.     * langs/fr.rcp: Updats from some random person.    
  1641.     
  1642. 2000-10-15  Tom Dyas  <tdyas@users.sourceforge.net>
  1643.  
  1644.     * edit.c (EditViewHandleEvent): Hide the delete button when a new
  1645.     record is being entered. Fixes bug where pressing delete while
  1646.     entering a new record removed the first real record.
  1647.     * langs/pt.rcp: New file. Portuguese translation from Pedro Pessoa
  1648.     <pedro.pessoa@pobox.com>.
  1649.     * db.rcp: Add include statement for pt.rcp.
  1650.     (formID_SortEditor): Form for the sort definition editor.
  1651.     (menuID_ListViewMenu): Add entry for the sort definition editor.
  1652.     * enum.h: Add constants for the sort definition editor.
  1653.     * sort.c: New file. Contains GUI code for the sort definition
  1654.     editor.
  1655.     * db.h: Prototype for SortEditor_HandleEvent().
  1656.  
  1657.     * io.c (DB_SortCallback): Callback for DmQuickSort() for DB
  1658.     databases.
  1659.     (DB_Sort): Sort support for DB databases.
  1660.     (DB_Open): Use DB_Sort() for the Sort method.
  1661.     (OldDB_SortCallback): Callback for DmQuickSort() for DB 0.2.x
  1662.     databases.
  1663.     (OldDB_Sort): Sort support for DB 0.2.x databases.
  1664.     (OldDB_Open): Use OldDB_Sort() for the Sort method.
  1665.     (DS_StandardSortCallback): Standard logic for comparing two
  1666.     records via the data source "getter" interface.
  1667.     (SortCallbackData): Helper structure to contain all data needed to
  1668.     invoke a sort callback.
  1669.     (sort_callback_data): Pointer to an instance of the
  1670.     SortCallbackData structure.
  1671.     * main.c (AppHandleEvent): Handle formID_SortEditor
  1672.     * datasource.h (DataSourceOperations): Add Sort method.
  1673.     (DS_StandardSortCallback): Prototype for the standard sort
  1674.     callback which can compare most data source records to each other.
  1675.     (DataSourceSortDirection): New enumeration. Defines which way a
  1676.     sort will be done.
  1677.     (DataSourceSortField): New structure. Defines how to sort on a
  1678.     particular field.
  1679.     (DataSourceSortInfo): New structure. Defines how to sort an entire
  1680.     data source. Uses DataSourceSortField to describe each field.
  1681.  
  1682. 2000-07-16  Tom Dyas  <tdyas@users.sourceforge.net>
  1683.  
  1684.     * db.rcp: Include French translation file.
  1685.     Use HEX resource for LinkMaster support resource.
  1686.     * Makefile (VERSION): Bump version number to 0.3.1.
  1687.     (TOUCH): New macro for "touch" command.
  1688.     (RM_RF): Likewise for "rm -rf".
  1689.     (RM_F): Likewise for "rm -f".
  1690.     (db-fr.prc): New target for French translation.
  1691.     (ts-bin-fr): Likewise.
  1692.     (ts-res): Use RM_RF and TOUCH macros.
  1693.     (ts-bin,ts-bin-sample,ts-bin-de,ts-bin-nl,ts-bin-ja): Use RM_F and
  1694.     TOUCH macros. Remove creation of LinkMaster resource since it is
  1695.     in db.rcp now.
  1696.     (clean,distclean): Use RM_F and RM_RF macros.
  1697.     * langs/fr.rcp: French translation from Marco LaverdiΦre
  1698.     <laverdi@aei.ca>
  1699.     * docs/building.txt: Change wording of PilRC paragraph.
  1700.     * docs/translating.txt: Update for newer build system.
  1701.     
  1702. 2000-07-15  Tom Dyas  <tdyas@users.sourceforge.net>
  1703.  
  1704.     * Version 0.3.0
  1705.     * langs/sample.rcp: Update with latest strings.
  1706.     * langs/nl.rcp: Likewise.
  1707.     * langs/ja.rcp: Likewise.
  1708.     * callback.h: Removed. This file is no longer needed since
  1709.     prc-tools 2.0 does not need the special callback macros.
  1710.     * TODO: Removed entry for read-only mode since it has been
  1711.     implemented.
  1712.     * NEWS: Updated for the 0.3.0 release.
  1713.     * docs/building.txt: Update URL for pilrc.
  1714.     
  1715. 2000-07-08  Tom Dyas  <tdyas@users.sourceforge.net>
  1716.  
  1717.     * util.c (MyWinDrawTruncChars): Always use our implementation
  1718.     instead of the PalmOSGlue version.
  1719.     * db.h (MyWinDrawTruncChars): Modified prototype to match.
  1720.     * listprop.c: Moved all internal routines into SECT_UI code
  1721.     section.
  1722.  
  1723. 2000-07-07  Tom Dyas  <tdyas@users.sourceforge.net>
  1724.  
  1725.     * README_de: German version of README from Thorsten Tietz
  1726.     <thorsten.tietz@gmx.de>
  1727.  
  1728. 2000-07-06  Tom Dyas  <tdyas@users.sourceforge.net>
  1729.  
  1730.     * chooser.c (DoDuplicate): Use GetStringPtr() to get localized
  1731.     version of "Working..." string.
  1732.     * design.c (Rebuild): Likewise.
  1733.     * enum.h: Define stringID_Working.
  1734.     * db.rcp: Add string resource for stringID_Working.
  1735.     * langs/de.rcp: Update from Thorsten Tietz <thorsten.tietz@gmx.de>
  1736.  
  1737. 2000-07-04  Tom Dyas  <tdyas@users.sourceforge.net>
  1738.  
  1739.     * langs/de.rcp: Update from Thorsten Tietz <thorsten.tietz@gmx.de>
  1740.     * db.rcp: Add stringID_Remove for "-- REMOVE --".
  1741.     * enum.h: Define stringID_Remove.
  1742.     * io.c (DB_Create): Use GetStringPtr() to get localized version of
  1743.     "All Fields".
  1744.     (OldDB_GetView): Likewise.
  1745.     * listprop.c (ListViewEditor_HandleEvent): Use GetStringPtr() to
  1746.     get localized version of "-- REMOVE --". Free field_names array
  1747.     when the form closes.
  1748.  
  1749. 2000-07-03  Tom Dyas  <tdyas@users.sourceforge.net>
  1750.  
  1751.     * README: Updated for 0.3.x final release.
  1752.     * docs/format.txt: Update with local find options chunk and new
  1753.     chunk numbering scheme.
  1754.     * langs/de.rcp,langs/ja.rcp,langs/nl.rcp,langs/sample.rcp: Add
  1755.     "Create using..." string for translation.
  1756.  
  1757. 2000-07-02  Tom Dyas  <tdyas@users.sourceforge.net>
  1758.  
  1759.     * chooser.c (popup_menu): Add the "Create using" action which
  1760.     activates design mode with the schema of a particular database.
  1761.     (ChooserHandleEvent:tblSelectEvent): Respond to
  1762.     actionID_CreateUsing from popup menu.
  1763.     (ChooserHandleEvent:ctlSelectEvent): Set DesignViewInitialSchema
  1764.     to 0 before create dialog.
  1765.     (ChooserHandleEvent:menuEvent): Don't go directly to design view
  1766.     when told to make a new database.
  1767.     (CreateDlgHandleEvent:frmCloseEvent): Free the initial schema if
  1768.     we did not go to design view.
  1769.     (CreateDlgHandleEvent:ctlSelectEvent): Likewise.
  1770.     * design.c (UpdateScrollers): Enable ins/del buttons when an
  1771.     initial schema is present.
  1772.     (UpdateNewDesign): If DesignViewInitialSchema, then just use
  1773.     schema directly.
  1774.     (FillLocalSchema): Use DesignViewInitialSchema.
  1775.     (DesignViewHandleEvent:frmOpenEvent): If initial schema is
  1776.     present, then don't hide ins/del buttons.
  1777.     (DesignViewHandleEvent:frmCloseEvent): Free the initial schema.
  1778.     * db.rcp: Add stringID_CreateUsing.
  1779.     * enum.h: Likewise.
  1780.  
  1781. 2000-06-25  Tom Dyas  <tdyas@users.sourceforge.net>
  1782.  
  1783.     * design.c (FillLocalSchema): Base decision of the "mode" on
  1784.     CurrentSource and not DesignViewInitialSchema.
  1785.     (UpdateScrollers): Likewise. Obey read-only mode. Remove del
  1786.     button when 1 field remaining.
  1787.     (DesignViewHandleEvent:frmOpenEvent): Likewise.
  1788.     (DesignViewHandleEvent:ctlSelectEvent): Likewise. Obey read-only
  1789.     mode.
  1790.     (DesignViewHandleEvent:frmCloseEvent): Null out SchemaFields and
  1791.     SchemaFieldsHandle.
  1792.     * config.h: Set MAX_NUM_FIELDS_FOR_NEW_DB to 32. This should
  1793.     really be a runtime option.
  1794.     * db.rcp: Add string for "Fld %d" for i18n.
  1795.     * enum.h: Defined stringID_FldN for "Fld %d" string.
  1796.     * list.c (DoCommand): Don't set DesignViewInitialSchema since the
  1797.     decision of "mode" is made from CurrentSource.
  1798.     * langs/de.rcp,langs/ja.rcp,langs/nl.rcp,langs/sample.rcp: Add
  1799.     "Fld %d" string for translation.
  1800.     
  1801. 2000-06-24  Tom Dyas  <tdyas@users.sourceforge.net>
  1802.  
  1803.     * listprop.c (AddColumn): Enable the remove option after a column
  1804.     is added unless in read-only mode.
  1805.     (DeleteColumn): Disable the remove option if only 1 column is
  1806.     remaining.
  1807.     (ListViewEditor_HandleEvent:field_names): Move field_names
  1808.     variable to file level.
  1809.     (ListViewEditor_HandleEvent:frmOpenEvent): Enable remove option if
  1810.     more than 1 column.
  1811.     (ListViewEditor_HandleEvent:ctlSelectEvent): Discard any edits if
  1812.     in read-only mode. Remove debug check for 0 columns. It is now
  1813.     impossible since we disable the remove option before we could ever
  1814.     get there.
  1815.  
  1816. 2000-06-18  Tom Dyas  <tdyas@users.sourceforge.net>
  1817.  
  1818.     * io.c (DB_GetOption_Boolean): Implement
  1819.     optionID_LFind_CaseSensitive and optionID_LFind_WholeWord.
  1820.     (DB_SetOption_Boolean): Likewise.
  1821.  
  1822. 2000-06-15  Tom Dyas  <tdyas@users.sourceforge.net>
  1823.  
  1824.     * io.c (DB_SetField): Used wrong variable to point at offset table
  1825.     in new record format. Fixes crash.
  1826.     * db.def: Add section "gridsect" for grid code.
  1827.     * grid.h (GRIDSECT): Use "gridsect" for the section and not "foo".
  1828.     (GridModelType): Add IsColumnEditable() method which lets a model
  1829.     tell the grid if a column is editable.
  1830.     * grid.c (GridHandleEvent): Use IsColumnEditable() method of grid
  1831.     model to determine if user can change checkbox.
  1832.     * list.c (ViewModel_IsColumnEditable): Implementation of
  1833.     IsColumnEditable() method for the ViewModel grid model.
  1834.     (ViewModel): Use ViewModel_IsColumnEditable().
  1835.     
  1836. 2000-06-14  Tom Dyas  <tdyas@users.sourceforge.net>
  1837.  
  1838.     * io.c (DB_GetOption_Boolean): Support optionID_DisableGlobalFind.
  1839.     (DB_SetOption_Boolean): Likewise.
  1840.     (DB_Create): Don't use dbFieldType{String,Boolean,Integer}
  1841.     constants.
  1842.     Add definitions for ListViewColumn and ListViewDefinition
  1843.     structures. Add constant for local find options.
  1844.     * db.h: Remove include of dbfmt.h.
  1845.  
  1846. 2000-06-08  Tom Dyas  <tdyas@users.sourceforge.net>
  1847.  
  1848.     * io.c (OldDB_UnpackRecord): Renamed from UnpackRecord() and moved
  1849.     into legacy support section.
  1850.     (DB_PackedRecordSize): New function. Determines the packed size of
  1851.     a record including the new offset table.
  1852.     (DB_PackRecord): New function. Pack data into a record and build
  1853.     the offset table.
  1854.     (DB_Getter_Get{String,Integer,Boolean}): Renamed from
  1855.     DB_Get{String,Integer,Boolean}. Use offset table to find where the
  1856.     field data is.
  1857.     (DB_LockRecord): Don't use UnpackRecord() since we have the offset
  1858.     table now. This function is O(1) now.
  1859.     (DB_UnlockRecord): Just unlock the record. No more pointers to
  1860.     free.
  1861.     (DB_UpdateRecord): Call DB_PackedRecordSize() and DB_PackRecord().
  1862.     (DB_SetField): Use offset table.
  1863.     (OldDB_Getter_Get{String,Integer,Boolean}): Getter functions for
  1864.     0.2.x format databases.
  1865.     (OldDB_PackedRecordSize): Determine packed size of a 0.2.x-format
  1866.     record. Renamed version of PackedRecordSize().
  1867.     (OldDB_PackRecord): Pack data into record. Renamed version of
  1868.     PackRecord().
  1869.     (OldDB_LockRecord,OldDB_UnlockRecord): New function. Lock and
  1870.     unlock old-style records.
  1871.     (OldDB_UpdateRecord,OldDB_SetField): Update old-style records and
  1872.     fields.
  1873.     (OldDB_Open): Use OldDB_LockRecord(), OldDB_UnlockRecord(),
  1874.     OldDB_UpdateRecord(), and OldDB_SetField() instead of the ones
  1875.     previously shared with the new format driver.
  1876.     
  1877. 2000-06-07  Tom Dyas  <tdyas@users.sourceforge.net>
  1878.  
  1879.     * io.c (DB_GetView): When we increment the app info block's ref
  1880.     count, it is always a good idea to decrement when done ...
  1881.  
  1882. 2000-06-06  Tom Dyas  <tdyas@users.sourceforge.net>
  1883.  
  1884.     * datasource.h (DataSourceOptionsEnum): Added new option for top
  1885.     visible record in list view.
  1886.     (DataSourceOperations): Added GetOption_UInt16 and
  1887.     SetOption_UInt16 to get/set UInt16-type options.
  1888.     * io.c (DB_GetOption_UInt16,DB_SetOption_UInt16): New
  1889.     functions. Get/set UInt16 options for new format databases.
  1890.     (DB_Open): Point at the new option functions.
  1891.     (DB_Create): Create the default CHUNK_LISTVIEW_OPTIONS for the
  1892.     database.
  1893.     (OldDB_GetOption_UInt16,OldDB_SetOption_UInt16): New
  1894.     functions. Get/set UInt16 options for 0.2.x format databases.
  1895.     (OldDB_Open): Point at the new option functions.
  1896.     * design.c (popup_strings_count): New variable. Number of elements
  1897.     in the popup_strings array.
  1898.     (UpdateScrollers): Set the width of the field type column and the
  1899.     popup list.
  1900.     (SetupPopupList): New function. Checks the data source driver to
  1901.     see which field types are supported. Only those are enabled.
  1902.     (DesignViewHandleEvent): Call SetupPopupList(). Free popup_strings
  1903.     on frmCloseEvent.
  1904.     * list.c (TopVisibleRecord): Removed.
  1905.     (ActiveViewIndex): New variable. Stores currently active view
  1906.     definition.
  1907.     (ListViewHandleEvent): Fill in ActiveViewIndex and the top record
  1908.     index from the associated options. Store the top visible index on
  1909.     frmCloseEvent.
  1910.     * docs/format.txt: Update for new list view options chunk.
  1911.     
  1912. 2000-06-03  Tom Dyas  <tdyas@users.sourceforge.net>
  1913.  
  1914.     * design.c (types): New array which defines the order of items in
  1915.     the field type popup list.
  1916.     (LoadTable): The index into the popup list is determined by
  1917.     scanning the types array.
  1918.     (SetColumnWidths): Only activate field types supported by the data
  1919.     source driver. Compute widths of field type strings and set
  1920.     columns accordingly.
  1921.     (DesignViewHandleEvent): When user selects a field type, scan
  1922.     types array using the index to find the actual field type.
  1923.     * datasource.h (DataSourceClassOperations): New method
  1924.     SupportsFieldType() which allows the design view to figure out
  1925.     what field types a driver can handle.
  1926.     * io.c (DB_SupportsFieldType): New function. Implements the driver
  1927.     class method SupportsFieldType() for DB and DB 0.2.x databases.
  1928.     (GetInternalDataSources): Use DB_SupportsFieldType().
  1929.     
  1930. 2000-06-01  Tom Dyas  <tdyas@users.sourceforge.net>
  1931.  
  1932.     * db.rcp: Add grafitti state indicator to duplicate, rename, and
  1933.     create dialogs. Redo size of app prefs and database prefs dialogs
  1934.     to cover to screen edge.
  1935.  
  1936. 2000-05-23  Tom Dyas  <tdyas@users.sourceforge.net>
  1937.  
  1938.     * util.c (MatchString): Use the glue routines to do the
  1939.     search. Could cache the comparison routine somehow. And hardcoding
  1940.     len_substr in call to Compare() could be a problem if possible to
  1941.     have different encodings for same character.
  1942.     * list.c (FindDialogHandleEvent): Don't lock down the "All Fields"
  1943.     string and never unlock it. It is copied now and freed when done.
  1944.     (CmpField): New function. Handles comparing any field
  1945.     type. Factored out of LocalSearch().
  1946.     (LocalSearch): Use CmpField().
  1947.  
  1948. 2000-05-19  Tom Dyas  <tdyas@users.sourceforge.net>
  1949.  
  1950.     * chooser.c (SetupActions): Modified so that popup menu is filled
  1951.     from the popup_menu[] array.
  1952.     (FreeActions): New function. Frees the memory allocated in
  1953.     SetupActions().
  1954.     (ChooserHandleEvent): Call FreeActions() in frmCloseEvent.
  1955.     * db.rcp: Added strings for popup menu items to make translation
  1956.     possible.
  1957.     * enum.h: Constants for popup menu item strings.
  1958.  
  1959. 2000-05-17  Tom Dyas  <tdyas@users.sourceforge.net>
  1960.  
  1961.     * chooser.c (DrawIcon): New function. Draws icon for a database
  1962.     which is currently the same as the program's small icon.
  1963.     (DrawLabel): Renamed from DrawChooserItem(). Just draws title of
  1964.     the data source.
  1965.     (LoadTable): Set item style for icon column.
  1966.     (InitTable): Setup the icon column.
  1967.     (ChooserHandleEvent): Only allow dragging on label and not
  1968.     icon. Respond to click on icon column instead of hardcoding pixel
  1969.     position.
  1970.     * db.rcp (formID_Chooser): Change table to contain 2 columns.
  1971.     
  1972. 2000-05-05  Tom Dyas  <tdyas@users.sourceforge.net>
  1973.  
  1974.     * chooser.c (RenameDatabase): New function. All functional code
  1975.     extracted from Chooser_RenameDatabase except opening/closing the
  1976.     chooser database. Plus the title is copied correctly.
  1977.     (Chooser_RenameDatabase): Just call RenameDatabase().
  1978.     (SetupActions): Add rename action.
  1979.     (ChooserHandleEvent): Handle rename action.
  1980.     (RenameDlgHandleEvent): New function. Implements the database
  1981.     rename dialog.
  1982.     * db.h: Added prototype for RenameDlgHandleEvent().
  1983.     * datasource.h (DataSourceOperations): Added method SetTitle()
  1984.     which sets the datasource's title and returns a new chooser key.
  1985.     * io.c (DB_SetTitle): Implementation of SetTitle() method.
  1986.     (DB_Open): Hook in DB_SetTitle() for SetTitle() method.
  1987.     (OldDB_Open): Hook in DB_SetTitle() for SetTitle() method.
  1988.     * design.c (Rebuild): Remove source database, rename destination
  1989.     database to the source's name using SetTitle(), and replace source
  1990.     with destination.
  1991.     * db.rcp: Added rename dialog.
  1992.     * enum.h: Constants for rename dialog.
  1993.     * main.c (AppHandleEvent): Handle formID_RenameDlg.
  1994.  
  1995. 2000-05-04  Tom Dyas  <tdyas@users.sourceforge.net>
  1996.  
  1997.     * design.c (Rebuild_GetString): If asked for the value of a new
  1998.     field, return blank.
  1999.     (Rebuild_GetInteger): Likewise. Return 0.
  2000.     (Rebuild_GetBoolean): Likewise. Return false.
  2001.     (Rebuild): Display "Working..." while doing work.
  2002.     Copy views from source to destination.
  2003.     Display alert for errors.
  2004.     Detect errors from UpdateRecord().
  2005.     * chooser.c (DuplicateDlgHandleEvent): Renamed from
  2006.     DuplicateDataSource().
  2007.     (DoDuplicate): Display "Working..." while doing work.
  2008.     Copy views from source to destination.
  2009.     Detect errors from UpdateRecord().
  2010.     Display alert for any errors.
  2011.     * db.h: Added prototype for DuplicateDlgHandleEvent().
  2012.     * db.rcp: Added alerts RebuildFailed and DuplicateFailed.
  2013.     * enum.h: Added alertID_RebuildFailed and alertID_DuplicateFailed.
  2014.     * main.c (AppHandleEvent): Added formID_DuplicateDlg.
  2015.  
  2016. 2000-05-02  Tom Dyas  <tdyas@users.sourceforge.net>
  2017.  
  2018.     * design.c (PopupFieldSelectDialog): Use MemPtrUnlock() instead of
  2019.     MemPtrFree() to unlock the name handles. Fixes crash.
  2020.     (Rebuild): New function. Rebuilds the active database using the
  2021.     specified new schema and field order.
  2022.     (Rebuild_GetString,Rebuild_GetInteger,Rebuild_GetBoolean): New
  2023.     functions which convert fields of the database.
  2024.     (UpdateExistingDesign): Call Rebuild() to rebuild the database.
  2025.     * db.rcp (formID_CreateDlg): Rework the position of the name field
  2026.     and type list.
  2027.  
  2028. 2000-05-01  Tom Dyas  <tdyas@users.sourceforge.net>
  2029.  
  2030.     * Makefile: Replaced direct calls to build-prc, pilrc, and m4 with
  2031.     macros so users can override easily on the command line.
  2032.     * docs/building.txt: Updated for recent changes incl. SDK 3.5.
  2033.  
  2034. 2000-04-30  Tom Dyas  <tdyas@users.sourceforge.net>
  2035.  
  2036.     * Makefile: Use m4 to preprocess the resource file so we don't
  2037.     need a special patch to pilrc to get normal include
  2038.     files. Substitute the version and build date into the resource
  2039.     file as macros.
  2040.  
  2041. 2000-04-29  Tom Dyas  <tdyas@users.sourceforge.net>
  2042.  
  2043.     * datasource.h (DataSourceOperations): Changed prototype of
  2044.     CheckUpdateSchema() and UpdateSchema() methods to support the new
  2045.     rebuild functionality.
  2046.     * io.c (DB_CheckUpdateSchema): Conform to new prototype.
  2047.     (DB_UpdateSchema): Likewise.
  2048.     (OldDB_UpdateSchema): Likewise.
  2049.     (OldDB_Open): Use DB_CheckUpdateSchema() for CheckUpdateSchema()
  2050.     method.
  2051.  
  2052. 2000-04-28  Tom Dyas  <tdyas@users.sourceforge.net>
  2053.  
  2054.     * io.c (OldDB_Create): New function. Creates databases in the
  2055.     legacy format.
  2056.     (DB_CheckTitle): Check to see if a title already exists.
  2057.     * db.rcp: Added forms for new create and duplicate
  2058.     dialogs. Removed name field from design view since it is handled
  2059.     by the create dialog now.
  2060.     * enum.h: Constant values for new dialogs.
  2061.     * chooser.c (ChooserHandleEvent): Add duplicate action.
  2062.     (SetupActions): Add duplicate action.
  2063.     (DoDuplicate): Copy one data source to another.
  2064.     (FillDriverList): Scan the driver list and copy the names into an
  2065.     UI list.
  2066.     (DuplicateDataSource): Popup the UI for the duplicate feature.
  2067.     (CreateDlgHandleEvent): Handle the create dialog.
  2068.     * datasource.h (DataSourceClassOperations): New class method
  2069.     CheckTitle. Checks to see if a title is already in use. Used by
  2070.     create dialog.
  2071.     (DataSourceClassOperations): Modified prototype for Create so that
  2072.     the key is returned.
  2073.     * design.c: Removed every reference to the name field. Added
  2074.     variables DesignViewDriver and DesignViewName used for creation.
  2075.     * db.h: Prototypes for DesignViewDriver, DesignViewName, and
  2076.     CreateDlgHandleEvent().
  2077.     * main.c (AppHandleEvent): Handle formID_CreateDlg.
  2078.     
  2079. 2000-04-26  Tom Dyas  <tdyas@users.sourceforge.net>
  2080.  
  2081.     * io.c (PDB_Enumerate): New function. Helper for Enumerate driver
  2082.     methods that use Palm databases.
  2083.     (PDB_GlobalFind): New function. Helper for GlobalFind driver
  2084.     methods that use Palm databases.
  2085.     (DB_Enumerate,OldDB_Enumerate): Use PDB_Enumerate().
  2086.     (DB_GlobalFind,OldDB_GlobalFind): Use PDB_GlobalFind().
  2087.     (DB_GetRecordID): New function. Implements GetRecordID() method
  2088.     for DB databases.
  2089.     (PDB_Beam): SendDatabase() moved from chooser.c and renamed. Beams
  2090.     a database to another device.
  2091.     (WriteDBData): Helper function for PDB_Beam(). Moved from
  2092.     chooser.c.
  2093.     (BeamDataSource): New function. Find the correct driver and call
  2094.     Beam() driver method.
  2095.     * list.c (ViewModel_GetCellID): Use GetRecordID method.
  2096.     * datasource.h (DataSourceOperations): Added GetRecordID() method.
  2097.     (DataSourceClassOperations): Added Beam() driver method.
  2098.     (BeamDataSouce): Added prototype.
  2099.     (DataSource): Added readonly flag. Set to true when data source
  2100.     can/should not be modified.
  2101.     * chooser.c (SendDatabase,WriteDBData): Moved to io.c.
  2102.     (ChooserHandleEvent): Call BeamDataSource() when beam selected.
  2103.     * db.h (SeekRecord): Removed obsolete prototype.
  2104.     
  2105. 2000-04-24  Tom Dyas  <tdyas@users.sourceforge.net>
  2106.  
  2107.     * io.c (DB_GlobalFind): Implement global find for native DB
  2108.     databases.
  2109.     (OldDB_GlobalFind): Implement global find for legacy DB databases.
  2110.     (DB_Open,DB_OpenPDB): Added mode argument.
  2111.     (OldDB_Open,OldDB_OpenPDB): Added mode argument.
  2112.     (OpenDataSource): Added mode argument.
  2113.     Changed key_size from UInt32 to UInt16.
  2114.     (DB_GetTitle): New function. Returns title of database.
  2115.     * datasource.h: Add new class method which implements global find.
  2116.     Changed key_size from UInt32 to UInt16.
  2117.     (OpenDataSource,OpenDataSourcePDB): Added mode argument.
  2118.     * chooser.c (ChooserHandleEvent): Use dmModeReadWrite for new mode
  2119.     arugment.
  2120.     * main.c (ChooseInitialForm): Use dmModeReadWrite for new mode
  2121.     argument.
  2122.     * find.c (GlobalSearch): Completely rewritten to support the data
  2123.     source layer.
  2124.     (GFindCallback): Function used as a callback from the data source
  2125.     drivers.
  2126.     * list.c (ListViewHandleEvent): Use GetTitle method instead of
  2127.     breaking the data source abstraction.
  2128.     
  2129. 2000-04-21  Tom Dyas  <tdyas@users.sourceforge.net>
  2130.  
  2131.     * io.c (DB_SetField): New function. Sets any field in a locked
  2132.     down record.
  2133.     * list.c (ViewModel_SetCellBoolean): Call SetField data source
  2134.     method to restore checkbox feature.
  2135.     * main.c (PilotMain): Support sysAppLaunchCmdOpenDB launch code
  2136.     which some newer launchers send when a document is clicked.
  2137.     (CheckMinVersion): New function. Makes sure the ROM is version 2.0
  2138.     or higher.
  2139.     * chooser.c: Support masked private records on PalmOS 3.5.
  2140.     (ChooserInfoDialogHandleEvent): Fill in the type field with the
  2141.     name of the data source driver.
  2142.     * listprop.c (SaveFieldWidths): Use numCols instead of the number
  2143.     of fields so we don't crash ...
  2144.     * db.rcp: Added type field to the chooser info dialog.
  2145.  
  2146. 2000-04-20  Tom Dyas  <tdyas@users.sourceforge.net>
  2147.  
  2148.     * io.c (OpenDataSourcePDB): New function. Calls OpenPDB method of
  2149.     each driver.
  2150.     (DB_OpenPDB): Opens a specific PDB.
  2151.     (DB_CanHandlePDB): Checks if a driver supports a specific PDB.
  2152.     
  2153. 2000-04-11  Tom Dyas  <tdyas@users.sourceforge.net>
  2154.  
  2155.     * *.c,*.h: Ported to SDK 3.5 which required a massive rename.
  2156.  
  2157. 2000-02-11  Tom Dyas  <tdyas@users.sourceforge.net>
  2158.  
  2159.     * docs/building.txt: Point at prc-tools 2.0 home page.
  2160.  
  2161. 2000-02-10  Tom Dyas  <tdyas@users.sourceforge.net>
  2162.  
  2163.     * Makefile: Support prc-tools 2.0 which supports multiple code
  2164.     resources.
  2165.  
  2166. 2000-02-03  Tom Dyas  <tdyas@users.sourceforge.net>
  2167.  
  2168.     * grid.c: Row Highlight support.
  2169.     * grid.h: Prototypes for the highlighting functions.
  2170.     * list.c: Reorganized the local find code so that it uses a normal
  2171.     event handler. FrmSetFocus() after FrmDrawForm() so cursor is
  2172.     enabled correctly. Use new highlight support in the grid.
  2173.     * main.c (AppHandleEvent): Added formID_FindDialog
  2174.  
  2175. 2000-02-02  Tom Dyas  <tdyas@users.sourceforge.net>
  2176.  
  2177.     * docs/building.txt: New file. Details on how to build DB from
  2178.     scratch.
  2179.  
  2180. 2000-01-10  Tom Dyas  <tdyas@users.sourceforge.net>
  2181.  
  2182.     * Makefile: Changed to build with new version of
  2183.     prc-tools. Removed callback.h from dependencies.
  2184.     * chooser.c: Removed callback stuff.
  2185.     * design.c: Likewise.
  2186.     * edit.c: Likewise.
  2187.     * find.c: Likewise.
  2188.     * list.c: Likewise.
  2189.     * listprop.c: Likewise.
  2190.     * main.c: Likewise.
  2191.     * util.c: Use PalmOS 3.1 Text Manager for now.
  2192.  
  2193. 2000-01-05  Tom Dyas  <tdyas@users.sourceforge.net>
  2194.  
  2195.     * scripts/escape-strings.pl: Perl script that escapes strings in
  2196.     the translation files so pilrc likes the strings.
  2197.     * langs/ja.rcp: Update from <sat@pro.email.ne.jp>.
  2198.     * langs/de.rcp: Update from Thorsten Tietz <thorsten.tietz@gmx.de>
  2199.     * db.rcp: Enable the Japanese translation.
  2200.  
  2201. 2000-01-02  Tom Dyas  <tdyas@users.sourceforge.net>
  2202.  
  2203.     * Version 0.2.5
  2204.     * NEWS: Changed for 0.2.5.
  2205.     * langs/de.rcp: Updates from Thorsten Tietz
  2206.     <thorsten.tietz@gmx.de>
  2207.     * db.rcp (formID_ChooserOptsDialog): Increased width of popup list
  2208.     on display options screen.
  2209.  
  2210. 2000-01-01  Tom Dyas  <tdyas@users.sourceforge.net>
  2211.  
  2212.     * chooser.c (SortAlphabetic): New function. Sorts database names.
  2213.     (LoadTable): Use unqiue ID to detect when a record moves.
  2214.     (InvertMoveIndicator): Invert the little squiggly line used to
  2215.     indicate a move.
  2216.     (SelectItem): Handle tblEnterEvent to allow dragging of databases.
  2217.     (ChooserHandleEvent): Call SelectItem() on tblEnterEvent.
  2218.     
  2219. 1999-12-30  Tom Dyas  <tdyas@users.sourceforge.net>
  2220.  
  2221.     * chooser.c: Added support for categories and secret databases.
  2222.     * db.rcp: Updated Chooser form and added new Chooser Info Dialog
  2223.     * enum.h: IDs for the new Chooser form elements
  2224.     * db.h: (DBPrefsType): Added chooser-specific preferences.
  2225.     (Chooser_AddDatabase): Added prototype.
  2226.     (Chooser_RenameDatabase): Likewise.
  2227.     (ChooserInfoDialogHandleEvent): Likewise.
  2228.     * design.c (UpdateExistingDesign): Call Chooser_RenameDatabase().
  2229.     * io.c (CreateDatabase): Call Chooser_AddDatabase().
  2230.     * main.c (AppHandleEvent): Handle formID_ChooserInfoDialog
  2231.     (InitPrefs): New function. Initializes prefs structure.
  2232.     (StartApplication): Use InitPrefs(). Set HideSecretRecords from
  2233.     system preferences.
  2234.     (PilotMain): Respond to sysAppLaunchCmdSyncNotify after HotSync.
  2235.     * langs/*.rcp: Added new translation strings.
  2236.  
  2237. 1999-12-28  Tom Dyas  <tdyas@users.sourceforge.net>
  2238.  
  2239.     * main.c (StartApplication): Retrieve saved database name from
  2240.     preferences.
  2241.     (StopApplication): Store database name in preferences.
  2242.     * db.h: Changed preferences to store database name.
  2243.  
  2244. 1999-12-21  Tom Dyas  <tdyas@users.sourceforge.net>
  2245.  
  2246.     * Version 0.2.4
  2247.     * find.c (GlobalSearch): Fix crash in global find when user
  2248.     disabled find on a database. Caused by unlocking the app info
  2249.     block too many times. Bug spotted by Peter Kane
  2250.     <Peter.KANE@ergon.com.au>
  2251.  
  2252. 1999-12-20  Tom Dyas  <tdyas@users.sourceforge.net>
  2253.  
  2254.     * Version 0.2.3
  2255.     * build-zip.sh: New file. Automates the building of the zip
  2256.     distributions.
  2257.     * langs/de.rcp: Updates from Thorsten Tietz
  2258.     <thorsten.tietz@gmx.de>
  2259.     * langs/nl.rcp: Fix the page up/down strings.
  2260.     * langs/sample.rcp: Likewise.
  2261.     * list.c: Fix calls to ListScroll to actually scroll in the right
  2262.     direction.
  2263.  
  2264. 1999-12-19  Tom Dyas  <tdyas@users.sourceforge.net>
  2265.  
  2266.     * Version 0.2.2
  2267.     * README: Mention SourceForge and the new mailing list.
  2268.     * NEWS: Description of latest updates.
  2269.  
  2270. 1999-12-17  Tom Dyas  <tdyas@users.sourceforge.net>
  2271.  
  2272.     * db.rcp: Add new labels and popup triggers for scroll button
  2273.     configuration.
  2274.     * enum.h: Defines for the new controls.
  2275.     * prefs.c (PopupAppPrefs): Hook in new controls.
  2276.     * main.c (StartApplication): Make page scrolling the default for
  2277.     the page up/down hard keys.
  2278.     * langs/*.rcp: New translation strings.
  2279.     * list.c: Use the new scrolling preferences to determine line/page
  2280.     scrolling.
  2281.  
  2282. 1999-12-15  Tom Dyas  <tdyas@users.sourceforge.net>
  2283.  
  2284.     * listprop.c (ListPropViewHandleEvent): Release table focus when
  2285.     form closes so we don't crash.
  2286.  
  2287. 1999-11-26  Tom Dyas  <tdyas@users.sourceforge.net>
  2288.  
  2289.     * Version 0.2.1
  2290.  
  2291. 1999-10-24  Tom Dyas  <tdyas@users.sourceforge.net>
  2292.  
  2293.     * README: Reference new palm-db-tools package where conversion
  2294.     utilities are now located.
  2295.     * docs/converters.txt: Removed.
  2296.     * tools/*: Removed. Use palm-db-tools package.
  2297.     
  2298. 1999-09-24  Tom Dyas  <tdyas@users.sourceforge.net>
  2299.  
  2300.     * docs/translating.txt: Added ISO language code list.
  2301.     * langs/de.rcp: Updated translation.
  2302.     * Makefile: Modified build rules for Dutch and Japanese to use
  2303.     correct language codes.
  2304.     * list.c (PopupFindDialog): Set width for field selection list
  2305.     dynamically based on field names.
  2306.  
  2307. 1999-09-22  Tom Dyas  <tdyas@users.sourceforge.net>
  2308.  
  2309.     * main.c (PilotMain): Support LinkMaster 0.3.0 and higher.
  2310.  
  2311. 1999-09-02  Tom Dyas  <tdyas@users.sourceforge.net>
  2312.  
  2313.     * Makefile: Added some dependencies for the sources files.
  2314.  
  2315. 1999-08-16  Tom Dyas  <tdyas@users.sourceforge.net>
  2316.  
  2317.     * db.rcp: Added DEFAULTBUTTON entry for all alerts. pilrc 2.4 or
  2318.     higher is now required.
  2319.     Commented out include of Japanese translation for now.
  2320.     (menuID_EditViewMenu): Menu option on Edit screen for publishing a
  2321.     link to LinkMaster.
  2322.     * linkaware.[ch]: New files that implement LinkMaster
  2323.     support. Patch from Mitch Blevin.
  2324.     * main.c (PilotMain): Respond to LinkMaster launch codes.
  2325.  
  2326. 1999-08-03  Tom Dyas  <tdyas@users.sourceforge.net>
  2327.  
  2328.     * Makefile: Base targets for languages on ISO country code.
  2329.     * langs/de.rcp: Moved German translation here from db.rcp.
  2330.     * langs/nl.rcp: Ditto for Dutch translation.
  2331.     * langs/sample.rcp: Ditto for sample translation.
  2332.     * langs/ja.rcp: Japanese translation.
  2333.     * docs/translating.txt: Update to include new way of storing the
  2334.     translations.
  2335.  
  2336. 1999-07-03  Tom Dyas  <tdyas@users.sourceforge.net>
  2337.  
  2338.     * list.c (PopupFindDialog): Set database flags to current state of
  2339.     LFindCaseSens and LFindWholeWord.
  2340.     * util.c (GetFlags): New function. Returns database flags.
  2341.     * util.c (SetFlags): New function. Sets database flags.
  2342.  
  2343. 1999-06-17  Tom Dyas  <tdyas@users.sourceforge.net>
  2344.  
  2345.     * util.c (MatchString): Forgot code to match whole word for case
  2346.     insensitive searches.
  2347.  
  2348. 1999-06-15  Tom Dyas  <tdyas@users.sourceforge.net>
  2349.  
  2350.     * util.c (MatchString): New function. Does string matching with
  2351.     support for caseless and whole word.
  2352.     * list.c (LocalSearch): Use MatchString().
  2353.  
  2354. 1999-06-10  Tom Dyas  <tdyas@users.sourceforge.net>
  2355.  
  2356.     * design.c (DesignViewHandleEvent): Fix buffer overrun.
  2357.  
  2358. 1999-06-08  Tom Dyas  <tdyas@users.sourceforge.net>
  2359.  
  2360.     * edit.c (EditViewHandleEvent): Moved form setup code to
  2361.     SetupRecordData(). Fixes crash when event handler entered via
  2362.     FrmCloseAllForms() in main.c:StopApplication().
  2363.     * config.h: New file. Place for manifest constants and macros to
  2364.     let user configure certain features out of DB.
  2365.     * design.c (DesignViewHandleEvent): Use new manifest constant
  2366.     MAX_NUM_FIELDS_FOR_NEW_DB.
  2367.     (DesignViewHandleEvent,frmCloseEvent): Release focus when form is
  2368.     being closed so all data is written back.
  2369.     * TODO: Various updates.
  2370.     * docs/translating.txt: New file. Shows how to provide a new
  2371.     language translation of DB.
  2372.     
  2373. 1999-06-06  Tom Dyas  <tdyas@users.sourceforge.net>
  2374.  
  2375.     * chooser.c (SendDatabase): New function. Uses Exchange Manager to
  2376.     beam a database.
  2377.     * db.rcp (formID_Chooser): Added "beam" button and "open" button.
  2378.  
  2379. 1999-06-05  Tom Dyas  <tdyas@users.sourceforge.net>
  2380.  
  2381.     * design.c (InsertField): Use signed integers, not unsigned. Fixes
  2382.     crashes when inserting fields.
  2383.  
  2384. 1999-06-01  Tom Dyas  <tdyas@users.sourceforge.net>
  2385.  
  2386.     * db.rcp: Updated German strings from Thorsten Tietz.
  2387.  
  2388. 1999-05-28  Tom Dyas  <tdyas@users.sourceforge.net>
  2389.  
  2390.     * design.c (PopupFieldSelectDialog): Call InitTable() when a field
  2391.     is inserted to reset everything.
  2392.  
  2393. 1999-05-20  Tom Dyas  <tdyas@users.sourceforge.net>
  2394.  
  2395.     * db.rcp: Reworked the field selector dialog for the design view.
  2396.     * enum.h: Renamed constants for field selector dialog.
  2397.     * main.c (AppHandleEvent): Removed formID_DesignView_SelectField
  2398.     from the frmLoadEvent handler.
  2399.     * db.h: Removed prototype for SelectFieldHandleEvent().
  2400.     * design.c: Moved SelectFieldHandleEvent() into InsertField(),
  2401.     DeleteField(), and PopupFieldSelectDialog().
  2402.     (DesignViewHandleEvent): Call PopupFieldSelectDialog().
  2403.     
  2404. 1999-05-16  Tom Dyas  <tdyas@users.sourceforge.net>
  2405.  
  2406.     * Makefile (db-dutch.prc,ts-bin-dutch): Add targets for Dutch
  2407.     version of DB.
  2408.     * db.rcp: Added Dutch translation from Tom Van Wint
  2409.     (tom.vanwint@watco.be).
  2410.  
  2411. 1999-05-13  Tom Dyas  <tdyas@users.sourceforge.net>
  2412.  
  2413.     * list.c (PopupFindDialog): Setup the search field list and
  2414.     trigger label.
  2415.     (LocalSearch): Obey the search field specified by LFindField.
  2416.     Fix bug where we didn't unlock the record when a match was made.
  2417.     * db.rcp: Add search field list and trigger.
  2418.  
  2419. 1999-05-06  Tom Dyas  <tdyas@users.sourceforge.net>
  2420.  
  2421.     * list.c (PopupFindDialog): Set the whole word checkbox.
  2422.     (LocalSearch): Show alert if string is not found.
  2423.     * db.rcp: Added whole word checkbox and not found alert.
  2424.  
  2425. 1999-04-28  Tom Dyas  <tdyas@users.sourceforge.net>
  2426.  
  2427.     * db.rcp: Update German translation. Add small icon.
  2428.     * small.bmp: New icon for Palm III list view from Thorsten Tietz.
  2429.     * list.c (StrCaselessStr): See if one string is inside another.
  2430.     (LocalSearch): Use StrCaselessStr().
  2431.     (PopupFindDialog): Set the case-sensitibity checkbox.
  2432.     * TODO: Remove small list icon and search entries.
  2433.  
  2434. 1999-04-27  Tom Dyas  <tdyas@users.sourceforge.net>
  2435.  
  2436.     * list.c (LocalSearch): New function. Implements the local find
  2437.     functionality.
  2438.     (PopupFindDialog): Use LocalSearch().
  2439.     (ListViewHandleEvent): Implement the search repeat button.
  2440.     * db.rcp: Add search repeat button.
  2441.  
  2442. 1999-04-26  Tom Dyas  <tdyas@users.sourceforge.net>
  2443.  
  2444.     * Makefile: Added db-german.prc and ts-bin-german targets to
  2445.     create german version of DB.
  2446.     * db.rcp: Added German translation from Thorsten Tietz
  2447.     <101.147211@germanynet.de>
  2448.  
  2449. 1999-04-25  Tom Dyas  <tdyas@users.sourceforge.net>
  2450.  
  2451.     * list.c (PopupFindDialog): New function. Displays the local find
  2452.     dialog.
  2453.     * db.rcp (formID_FindDialog): Added form resource for find dialog.
  2454.     (formID_ListView): Add find button and move arrow buttons around.
  2455.     Added sample translation.
  2456.     * Makefile (db-sample): New target to generate the sample
  2457.     translation.
  2458.  
  2459. 1999-04-24  Tom Dyas  <tdyas@users.sourceforge.net>
  2460.  
  2461.     * Release version 0.20
  2462.     * list.c (ListInitTable): Set new variable LastColClipped if the
  2463.     last column didn't get its full size.
  2464.     (UpdateFieldButtons): Show right scroll button if LastColClipped
  2465.     is set.
  2466.     
  2467. 1999-04-18  Tom Dyas  <tdyas@users.sourceforge.net>
  2468.  
  2469.     * tools/util.c (strip_newline): New function that removes trailing
  2470.     CR/LF characters.
  2471.     * tools/util.h: Prototype for strip_newline().
  2472.     * tools/csv2pdb.c: Include <time.h> on Win32.
  2473.     * tools/pdb2csv.c: Ditto.
  2474.     * tools/mdb2csv.c: Ditto.
  2475.     * tools/jfile2csv.c: Ditto.
  2476.     * NEWS: Final updates before 0.20 release.
  2477.     * README: Some minor wording changes.
  2478.  
  2479. 1999-04-15  Tom Dyas  <tdyas@users.sourceforge.net>
  2480.  
  2481.     * docs/converters.txt: Completed documentation on conversion
  2482.     utilities.
  2483.     * README: Reference docs/converters.txt as the source of info on
  2484.     the conversion utilities.
  2485.     * tools/win32/makefile.gcc: Add jfile2csv target.
  2486.  
  2487. 1999-04-10  Tom Dyas  <tdyas@users.sourceforge.net>
  2488.  
  2489.     * docs/converters.txt: New document to describe how to use
  2490.     conversion utilities. Not complete yet.
  2491.  
  2492. 1999-04-08  Tom Dyas  <tdyas@users.sourceforge.net>
  2493.  
  2494.     * listprop.c (SaveFieldWidths): Use IsNumber() and String2Long()
  2495.     from util.c.
  2496.     * main.c (StopApplication): Call FrmSaveAllForms().
  2497.     * list.c: Set IsNewRecord correctly.
  2498.     * edit.c (EditViewHandleEvent): Handle frmSaveEvent so record is
  2499.     saved if user switches to another application.
  2500.     (EditViewSaveRecord): New function. When a field is exited, mark
  2501.     IsDirty if the field changed.
  2502.     (SaveRecord): Only save record if it is dirty.    
  2503.     
  2504. 1999-04-07  Tom Dyas  <tdyas@users.sourceforge.net>
  2505.  
  2506.     * tools/csv2pdb.c: Use signed integer instead of unsigned
  2507.     integer. Allows unknown field types to be detected. (-1 and
  2508.     unsigned types don't like each other)
  2509.     (field_directive): Return any errors in handle_field_directive()
  2510.     (output_records): Increase amount of buffer space. Flag an error
  2511.     if fgets() overruns the buffer.
  2512.     * util.c (IsNumber): New function.
  2513.     (String2Long): New function. Converts string in decimal, octal, or
  2514.     hexdecimal to a long integer.
  2515.     * edit.c (ValidateData): Use IsNumber().
  2516.     (SaveRecord): Use String2Long().
  2517.     
  2518. 1999-03-28  Tom Dyas  <tdyas@users.sourceforge.net>
  2519.  
  2520.     * list.c (UpdateFieldButtons): Cache the state of the scroll
  2521.     buttons so we don't show/hide them. Fixes display bug found by
  2522.     Damon <damon@Porsche.it.iupui.edu>.
  2523.     * tools/jfile2csv.c: New file. Converts JFile v3 databases into
  2524.     CSV text format compatible with csv2pdb.
  2525.  
  2526. 1999-03-27  Tom Dyas  <tdyas@users.sourceforge.net>
  2527.  
  2528.     * tools/csv2pdb.c: Added --help option.
  2529.     * tools/pdb2csv.c: Ditto.
  2530.     * tools/mdb2csv.c: Ditto.
  2531.  
  2532. 1999-03-23  Tom Dyas  <tdyas@users.sourceforge.net>
  2533.  
  2534.     * tools/util.c (str_to_array): Skip over seperator chars if caller
  2535.     wants it.
  2536.     * tools/util.h: Updated str_to_array() prototype.
  2537.     * tools/csv2pdb.c: Update to new version of str_to_array().
  2538.  
  2539. 1999-03-22  Tom Dyas  <tdyas@users.sourceforge.net>
  2540.  
  2541.     * tools/csv2pdb.c (string2type): New function. Converts a type
  2542.     string into a type number.
  2543.     (handle_field): Use string2type().
  2544.     (usage): Document all the options.
  2545.     * tools/util.c (csv_to_array): Rewritten to be accept empty
  2546.     trailing fields.
  2547.     (str_to_array): Ditto.
  2548.     * list.c (ListScroll): Bug fix. Scroll down a page and not up a
  2549.     page. Patch from Jonathan Hudson
  2550.     <jonathan.hudson@jrhudson.demon.co.uk>
  2551.  
  2552. 1999-03-13  Tom Dyas  <tdyas@users.sourceforge.net>
  2553.  
  2554.     * tools/popt.[ch]: New files. GPL'ed command line option parser.
  2555.     * tools/util.c: New file. Moved CSV parsing routine here.
  2556.     * tools/util.h: New file. Prototypes for util.c.
  2557.     
  2558. 1999-03-08  Tom Dyas  <tdyas@users.sourceforge.net>
  2559.  
  2560.     * io.c (CreateDatabase): Use DBCreatorID and not 'TKD3'.
  2561.     * tools/mdb2csv.c: New file. Converts MobileDB format databases
  2562.     into a CSV text file compatible with csv2pdb.
  2563.  
  2564. 1999-03-03  Tom Dyas  <tdyas@users.sourceforge.net>
  2565.  
  2566.     * edit.c (ValidateData): New function. Lets edit view see if
  2567.     entered data is in correct format.
  2568.  
  2569. 1999-03-01  Tom Dyas  <tdyas@users.sourceforge.net>
  2570.  
  2571.     * tools/pdb2csv.c: Rewritten to support output to the new "info"
  2572.     file for the metadeta.
  2573.     * tools/csv2pdb.c: Rewritten to support taking input from an
  2574.     "info" file as well as command line.
  2575.     
  2576. 1999-02-28  Tom Dyas  <tdyas@users.sourceforge.net>
  2577.  
  2578.     * edit.c,list.c,io.c,dbfmt.h,db.rcp: Add support for integer data
  2579.     type.
  2580.  
  2581. 1999-02-26  Tom Dyas  <tdyas@users.sourceforge.net>
  2582.  
  2583.     * list.c (AddNewRecord): If DmNewRecord() fails, then display an
  2584.     alert. Activate editor form here as well.
  2585.     (ListViewHandleEvent): Let AddNewRecord() activate editor.
  2586.  
  2587. 1999-02-25  Tom Dyas  <tdyas@users.sourceforge.net>
  2588.  
  2589.     * edit.c (EditViewHandleEvent): Support the "Cancel" button.
  2590.     * db.rcp,enum.h: Add "Cancel" button to Edit View.
  2591.  
  2592. 1999-02-23  Tom Dyas  <tdyas@users.sourceforge.net>
  2593.  
  2594.     * list.c (ListDrawTable): If a field exceeds the width of its
  2595.     column, then tack ellipsis ("...") on the end.
  2596.  
  2597. 1999-02-19  Tom Dyas  <tdyas@users.sourceforge.net>
  2598.  
  2599.     * tools/pdb2csv.c (process_appinfo): Output the field types and
  2600.     field widths as two additional lines.
  2601.     (process_records): Unpack boolean fields correctly.
  2602.     * tools/csv2pdb.c (output_records): Support boolean field type.
  2603.     (read_header_lines): New function. Read and parse all 3 lines of
  2604.     header info.
  2605.     (output_appinfo): Just use data parsed by read_header_lines().
  2606.     (read_line): Read a single line from the input file.
  2607.     * prefs.c (PopupAppPrefs): Reference correct ID for the okay
  2608.     button. Fixes bug where prefs were not saved.
  2609.     * main.c (StartApplication): Make sure app prefs exist as soon as
  2610.     DB is first run. Fixes bug where Global Find wouldn't work until
  2611.     user eited DB for the first time.
  2612.  
  2613. 1999-02-11  Tom Dyas  <tdyas@users.sourceforge.net>
  2614.  
  2615.     * find.c (GlobalSearch): Keep pointer to app info block locked
  2616.     while db is open. Use new format for UnpackRecord() call.
  2617.     * io.c (UnpackRecord): Add extra argument for field type data so
  2618.     it is usable from Global Find code.
  2619.     * db.h: Update prototype for UnpackRecord.
  2620.     * list.c: Use new format for UnpackRecord.
  2621.  
  2622. 1999-02-10  Tom Dyas  <tdyas@users.sourceforge.net>
  2623.  
  2624.     * list.c (ListViewHandleEvent): Set the form title to reflect the
  2625.     name of the database.
  2626.     * db.rcp: Added string resources for the two titles used in the
  2627.     design view.
  2628.     * util.c (GetStringPtr): New function. Return locked pointer to a
  2629.     string resource.
  2630.     * db.h: Prototype for GetStringPtr().
  2631.     * design.c (DesignViewHandleEvent): Use GetStringPtr() to get
  2632.     strings used for titles.
  2633.     * find.c,main.c,prefs.c: Change 'DBOS' to DBCreatorID and 'DB99'
  2634.     to DBTypeID.
  2635.     
  2636. 1999-02-06  Tom Dyas  <tdyas@users.sourceforge.net>
  2637.  
  2638.     * edit.c: Support editing boolean fields.
  2639.     * io.c: Modify packing routines to support different field types.
  2640.     * list.c: Support displaying boolean fields and editing them
  2641.     in-place.
  2642.     * dbfmt.h: Field type flags.
  2643.     * db.h: Change packing routine prototypes to match io.c.
  2644.     * db.rcp (formID_DesignView): Add "Bool" to field type list.
  2645.  
  2646. 1999-01-26  Tom Dyas  <tdyas@users.sourceforge.net>
  2647.  
  2648.     * Release version 0.19
  2649.     * prefs.c (PopupDBPrefs): Support setting the "disable find"
  2650.     database flag.
  2651.     * db.rcp,enum.h: Checkbox for "disable find" in DB prefs dialog.
  2652.     * dbfmt.h: Add constant for "disable find" flag.
  2653.     * list.c (ListDrawTable): Don't allow strings to overrun column
  2654.     width.
  2655.     * listprop.c (SetColumnWidths): During loop, use width of current
  2656.     column and not first column. Fixes bug.
  2657.     (SaveFieldWidths): Fix database corruption caused by header being
  2658.     rewritten incorrectly.
  2659.     * tools/csv2pdb.c: Support double quotes.
  2660.     * tools/pdb2csv.c: Output double quotes around all fields.
  2661.  
  2662. 1999-01-25  Tom Dyas  <tdyas@users.sourceforge.net>
  2663.  
  2664.     * tools/csv2pdb.c (csv_to_array): Return number of elements.
  2665.     (output_appinfo): Support new file format.
  2666.     (output_records): Error if number of fields does not match header.
  2667.     * tools/pdb2csv.c (process_appinfo): Support new file format.
  2668.  
  2669. 1999-01-23  Tom Dyas  <tdyas@users.sourceforge.net>
  2670.  
  2671.     * dbfmt.h: New format for app info block.
  2672.     * db.h: Defs for new globals numFields and fields. Remove dbInfo.
  2673.     * io.c: Declare numFields and fields.
  2674.     (OpenDatabase): Set the new globals.
  2675.     (CloseDatabase): Write TopVisibleRecord back to database.
  2676.     * list.c,edit.c: Use the new globals.
  2677.     * design.c: Remove design_info. Make it work with new globals.
  2678.  
  2679. 1999-01-22  Tom Dyas  <tdyas@users.sourceforge.net>
  2680.  
  2681.     * prefs.c (PopupAppPrefs): New function. Implements the
  2682.     application preferences dialog.
  2683.     * db.h: Prototype for PopupAppPrefs. New flags field in
  2684.     preferences structure.
  2685.     * db.rcp,enum.h: Support for the new dialog. Menu for the chooser
  2686.     view. Add the App Prefs dialog in various menus.
  2687.     * chooser.c (ChooserHandleEvent): Handle menuEvent.
  2688.     * main.c (PilotMain): Only respond to Find launch code if global
  2689.     Finds are enabled in the prefs.
  2690.     (StartApplication): Initialize the flags field in prefs.
  2691.  
  2692. 1999-01-17  Tom Dyas  <tdyas@users.sourceforge.net>
  2693.  
  2694.     * find.c: New file. Implements global find.
  2695.     * main.c (PilotMain): Respond to Find and GoTo launch codes.
  2696.     (GoToItem): New function. Sends frmGoto event to correct form.
  2697.     * db.h: Added prototype for GlobalSearch().
  2698.     
  2699. 1999-01-12  Tom Dyas  <tdyas@users.sourceforge.net>
  2700.  
  2701.     * edit.c (EditViewScroll): Make needed call to MemPtrUnlock(). Bug
  2702.     found by Yann Dirson <ydirson@mygale.org>.
  2703.  
  2704. 1999-01-11  Tom Dyas  <tdyas@users.sourceforge.net>
  2705.  
  2706.     * Release version 0.15
  2707.     * TODO: Support for going back to an open DB is done. Removed item.
  2708.     * README: Warn about incompatible database format changes.
  2709.     
  2710. 1999-01-10  Tom Dyas  <tdyas@users.sourceforge.net>
  2711.  
  2712.     * prefs.c: New file. Code for database preferences dialog.
  2713.     * db.rcp,enum.h: Add support for db prefs dialog.
  2714.     * db.h: Prototype for PopupDBPrefs(). Define struct for the app
  2715.     preferences. Changed prototype of OpenDatabase().
  2716.     * main.c: Added StartApplication() and ChooseInitialForm() so DB
  2717.     can support going back to an open database.
  2718.     * list.c (DoCommand): Call PopupDBPrefs().
  2719.     * io.c (OpenDatabase): Do some better error checking.
  2720.     
  2721. 1999-01-08  Tom Dyas  <tdyas@users.sourceforge.net>
  2722.  
  2723.     * db.rcp: Added new commands to list view menu (new record, goto
  2724.     top, goto bottom). Added "About..." command to more menus.
  2725.     * list.c (DoCommand): Support the above commands.
  2726.     (ListScroll): Support scrolling in page increments.
  2727.     (ListViewHandleEvent): Bind page up/down keys for scrolling.
  2728.     * listprop.c (UpdateScrollers): Corrected scrollDown test.
  2729.  
  2730. 1999-01-08  Tom Dyas  <tdyas@users.sourceforge.net>
  2731.  
  2732.     * db.bmp: New file containing a simple icon.
  2733.     * db.rcp: Added ICON entry to pull in the new icon.
  2734.     * util.c (SeekRecord): New utility routine.
  2735.     * list.c: Use SeekRecord. Export TopVisibleRecord and
  2736.     CurrentCategory.
  2737.     * io.c (OpenDatabase): Set TopVisibleRecord and CurrentCategory.
  2738.     * TODO: Updated with current feature requests.
  2739.  
  2740. 1999-01-07  Tom Dyas  <tdyas@users.sourceforge.net>
  2741.  
  2742.     * README: Added URL of site where copies of DB are released.
  2743.  
  2744. 1998-12-29  Tom Dyas  <tdyas@users.sourceforge.net>
  2745.  
  2746.     * Release version 0.12
  2747.     * README: New section mentioning Windows utility.
  2748.  
  2749. 1998-12-28  Tom Dyas  <tdyas@users.sourceforge.net>
  2750.  
  2751.     * tools/csv2pdb.c: Add macro pi_mktag to form the creator ID. Misc
  2752.     appearance cleanups.
  2753.     * tools/pdb2csv.c: New file. Converts PDB file to CSV format.
  2754.     * tools/Makefile: Added pdb2csv target.
  2755.     * tools/win32/*: Support for building utility programs under
  2756.     Windows. The pi-file.c file comes from pilot-link package with
  2757.     mods to make it standalone.
  2758.     
  2759. 1998-12-23  Tom Dyas  <tdyas@users.sourceforge.net>
  2760.  
  2761.     * tools/csv2pdb.c: Fix warnings and some errors.
  2762.     Patch from Larry W. Virden <lvirden@cas.org>
  2763.  
  2764. 1998-12-18  Tom Dyas  <tdyas@users.sourceforge.net>
  2765.  
  2766.     * Release version 0.11
  2767.     * design.c (DesignViewHandleEvent): When a label is tapped, then
  2768.     focus the field next to it.
  2769.     * listprop.c (ListPropViewHandleEvent): Likewise.
  2770.  
  2771. 1998-12-16  Tom Dyas  <tdyas@users.sourceforge.net>
  2772.  
  2773.     * Release version 0.10
  2774.     * listprop.c: New file. Implements a form for editing field
  2775.     widths.
  2776.     * chooser.c (ChooserHandleEvent): Support for deleting databases.
  2777.     * design.c: Cleaned up code for the new look.
  2778.     * db.rcp: Add new alerts for the design view. Added alert for
  2779.     database deletion. Add form for editing field widths.
  2780.     * main.c (AppHandleEvent): Support for the new form.
  2781.     
  2782. 1998-12-15  Tom Dyas  <tdyas@users.sourceforge.net>
  2783.  
  2784.     * design.c,db.rcp: Reworked how the design view works. It looks
  2785.     much nicer now.
  2786.  
  2787. 1998-12-02  Tom Dyas  <tdyas@users.sourceforge.net>
  2788.  
  2789.     * db.rcp: Added Edit menu for design view and edit view.
  2790.     * edit.c (EditViewHandleEvent): Handle menuEvent.
  2791.     * design.c (DesignViewHandleEvent): Handle menuEvent
  2792.