[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MiNT] XaAES:update:CONFIGVARS
Attached is a patch which I can see all the files in tools/hypview have
problems with CRLF.
I will also remove the *.prj files as the Makefiles are used in the
build process.
Can people let me know if this captures everything or if others need
doing.
Thanks,
Alan.
? .cvsignore
Index: block.c
===================================================================
RCS file: /mint/freemint/tools/hypview/block.c,v
retrieving revision 1.3
diff -u -r1.3 block.c
--- block.c 6 Apr 2008 15:47:03 -0000 1.3
+++ block.c 31 Aug 2009 09:34:19 -0000
@@ -1,195 +1,195 @@
-/*
- * $Id: block.c,v 1.3 2008/04/06 15:47:03 ggs Exp $
- *
- * HypView - (c) - 2006 Philipp Donze
- * 2006 - Philipp Donze & Odd Skancke
- *
- * A replacement hypertext viewer
- *
- * This file is part of HypView.
- *
- * HypView is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * HypView is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HypView; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include <string.h>
-#ifdef __GNUC__
- #include <mintbind.h>
- #include <fcntl.h>
- #include "stat.h"
-#else
- #include <tos.h>
-#endif
-#include <gem.h>
-#include "diallib.h"
-#include "defs.h"
-
-extern WINDOW_DATA *Win;
-
-short GetScrapPath(char *scrap_path, short clear);
-
-void BlockOperation(DOCUMENT *doc, short num)
-{
- WINDOW_DATA *win = Win;
- switch(num)
- {
- case CO_SAVE:
- SelectFileSave(doc);
- break;
- case CO_BACK:
- GoBack(doc);
- break;
- case CO_COPY:
- BlockCopy(doc);
- break;
- case CO_PASTE:
- BlockPaste(clipbrd_new_window);
- break;
- case CO_SELECT_ALL:
- SelectAll(doc);
- break;
- case CO_DELETE_STACK:
- RemoveAllHistoryEntries(win);
- ToolbarUpdate(doc,win->toolbar,TRUE);
- break;
- case CO_PRINT:
- break;
- }
-}
-
-void BlockSelectAll(DOCUMENT *doc, BLOCK *b)
-{
- b->start.line = 0;
- b->start.y = 0;
- b->start.offset = 0;
- b->start.x = 0;
- b->end.line = doc->lines;
- b->end.y = doc->height;
- b->end.offset = 0;
- b->end.x = 0;
- b->valid = TRUE;
-}
-
-void BlockCopy(DOCUMENT *doc)
-{
- char scrap_file[DL_PATHMAX];
- BLOCK b = doc->selection;
-
- if(!b.valid)
- BlockSelectAll(doc,&b);
-
- /* Kopier-Aktion ins Clipboard */
- graf_mouse(BUSYBEE,NULL);
- if(GetScrapPath(scrap_file, TRUE))
- {
- Debug("No clipboard defined");
- }
- else
- {
- short msg[8] = {SC_CHANGED,0,0,2,0x2e54/*'.T'*/,0x5854/*'XT'*/,0,0};
- BlockAsciiSave(doc, scrap_file);
- msg[1] = ap_id;
- shel_write(SHW_BROADCAST,0,0,(char *)msg,NULL);
- }
- graf_mouse(ARROW,NULL);
-}
-
-void BlockPaste(short new_window)
-{
- /* WINDOW_DATA *win = Win; */
- char scrap_file[DL_PATHMAX];
-
- /* "Einfuege"-Aktion ladet SCRAP.TXT aus dem Clipboard */
- if(GetScrapPath(scrap_file, FALSE))
- {
- Debug("No clipboard defined");
- }
- else
- {
- long ret;
- ret = Fopen(scrap_file, O_RDONLY);
- if(ret >= 0)
- {
- Fclose((short)ret);
- if (new_window)
- Win = NULL;
- OpenFileSW(scrap_file, NULL, 0);
- }
- }
-}
-
-void BlockAsciiSave(DOCUMENT *doc, char *path)
-{
- long ret;
- if(!doc->blockProc)
- {
- Cconout(7); /* Bing!!!! */
- return;
- }
-
- ret = Fopen(path,O_WRONLY|O_TRUNC|O_CREAT);
- if(ret < 0)
- FileErrorNr(path, ret);
- else
- {
- short handle = (short)ret;
- BLOCK b = doc->selection;
-
- if(!b.valid) /* Kein gltiger Block angewhlt? */
- BlockSelectAll(doc, &b);
-
- doc->blockProc(doc, BLK_ASCIISAVE, &b, &handle);
- Fclose(handle);
- }
-}
-
-short GetScrapPath(char *scrap_path, short clear)
-{
- long ret;
- if(!scrp_read(scrap_path))
- return(TRUE);
-
- if ( clear ) /* Klemmbrett loeschen? */
- {
- if(!scrp_clear()) /* scrp_clear() nicht vorhanden? */
- {
- long dirhandle;
-
- /* Verzeichnis oeffnen und alle "SCRAP.*" Dateien loeschen */
- dirhandle = Dopendir(scrap_path, 0);
- if((dirhandle >> 24) != 0xff)
- {
- char filename[DL_NAMEMAX], *ptr;
- XATTR xattr;
- long xret;
- ptr = &scrap_path[strlen(scrap_path)];
- do
- {
- ret = Dxreaddir(DL_NAMEMAX, dirhandle, filename, &xattr, &xret);
- if((ret >= 0) && (xret >= 0) &&
- ((xattr.mode&S_IFMT) == S_IFREG) &&
- !strnicmp(filename+4,"SCRAP.",6))
- {
- strcpy(ptr, filename + 4);
- Fdelete(scrap_path);
- }
- }while(ret == 0);
- Dclosedir(dirhandle);
- }
- }
- }
-
- strcat(scrap_path,"SCRAP.TXT");
- return(FALSE);
-}
+/*
+ * $Id: block.c,v 1.3 2008/04/06 15:47:03 ggs Exp $
+ *
+ * HypView - (c) - 2006 Philipp Donze
+ * 2006 - Philipp Donze & Odd Skancke
+ *
+ * A replacement hypertext viewer
+ *
+ * This file is part of HypView.
+ *
+ * HypView is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * HypView is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HypView; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <string.h>
+#ifdef __GNUC__
+ #include <mintbind.h>
+ #include <fcntl.h>
+ #include "stat.h"
+#else
+ #include <tos.h>
+#endif
+#include <gem.h>
+#include "diallib.h"
+#include "defs.h"
+
+extern WINDOW_DATA *Win;
+
+short GetScrapPath(char *scrap_path, short clear);
+
+void BlockOperation(DOCUMENT *doc, short num)
+{
+ WINDOW_DATA *win = Win;
+ switch(num)
+ {
+ case CO_SAVE:
+ SelectFileSave(doc);
+ break;
+ case CO_BACK:
+ GoBack(doc);
+ break;
+ case CO_COPY:
+ BlockCopy(doc);
+ break;
+ case CO_PASTE:
+ BlockPaste(clipbrd_new_window);
+ break;
+ case CO_SELECT_ALL:
+ SelectAll(doc);
+ break;
+ case CO_DELETE_STACK:
+ RemoveAllHistoryEntries(win);
+ ToolbarUpdate(doc,win->toolbar,TRUE);
+ break;
+ case CO_PRINT:
+ break;
+ }
+}
+
+void BlockSelectAll(DOCUMENT *doc, BLOCK *b)
+{
+ b->start.line = 0;
+ b->start.y = 0;
+ b->start.offset = 0;
+ b->start.x = 0;
+ b->end.line = doc->lines;
+ b->end.y = doc->height;
+ b->end.offset = 0;
+ b->end.x = 0;
+ b->valid = TRUE;
+}
+
+void BlockCopy(DOCUMENT *doc)
+{
+ char scrap_file[DL_PATHMAX];
+ BLOCK b = doc->selection;
+
+ if(!b.valid)
+ BlockSelectAll(doc,&b);
+
+ /* Kopier-Aktion ins Clipboard */
+ graf_mouse(BUSYBEE,NULL);
+ if(GetScrapPath(scrap_file, TRUE))
+ {
+ Debug("No clipboard defined");
+ }
+ else
+ {
+ short msg[8] = {SC_CHANGED,0,0,2,0x2e54/*'.T'*/,0x5854/*'XT'*/,0,0};
+ BlockAsciiSave(doc, scrap_file);
+ msg[1] = ap_id;
+ shel_write(SHW_BROADCAST,0,0,(char *)msg,NULL);
+ }
+ graf_mouse(ARROW,NULL);
+}
+
+void BlockPaste(short new_window)
+{
+ /* WINDOW_DATA *win = Win; */
+ char scrap_file[DL_PATHMAX];
+
+ /* "Einfuege"-Aktion ladet SCRAP.TXT aus dem Clipboard */
+ if(GetScrapPath(scrap_file, FALSE))
+ {
+ Debug("No clipboard defined");
+ }
+ else
+ {
+ long ret;
+ ret = Fopen(scrap_file, O_RDONLY);
+ if(ret >= 0)
+ {
+ Fclose((short)ret);
+ if (new_window)
+ Win = NULL;
+ OpenFileSW(scrap_file, NULL, 0);
+ }
+ }
+}
+
+void BlockAsciiSave(DOCUMENT *doc, char *path)
+{
+ long ret;
+ if(!doc->blockProc)
+ {
+ Cconout(7); /* Bing!!!! */
+ return;
+ }
+
+ ret = Fopen(path,O_WRONLY|O_TRUNC|O_CREAT);
+ if(ret < 0)
+ FileErrorNr(path, ret);
+ else
+ {
+ short handle = (short)ret;
+ BLOCK b = doc->selection;
+
+ if(!b.valid) /* Kein gltiger Block angewhlt? */
+ BlockSelectAll(doc, &b);
+
+ doc->blockProc(doc, BLK_ASCIISAVE, &b, &handle);
+ Fclose(handle);
+ }
+}
+
+short GetScrapPath(char *scrap_path, short clear)
+{
+ long ret;
+ if(!scrp_read(scrap_path))
+ return(TRUE);
+
+ if ( clear ) /* Klemmbrett loeschen? */
+ {
+ if(!scrp_clear()) /* scrp_clear() nicht vorhanden? */
+ {
+ long dirhandle;
+
+ /* Verzeichnis oeffnen und alle "SCRAP.*" Dateien loeschen */
+ dirhandle = Dopendir(scrap_path, 0);
+ if((dirhandle >> 24) != 0xff)
+ {
+ char filename[DL_NAMEMAX], *ptr;
+ XATTR xattr;
+ long xret;
+ ptr = &scrap_path[strlen(scrap_path)];
+ do
+ {
+ ret = Dxreaddir(DL_NAMEMAX, dirhandle, filename, &xattr, &xret);
+ if((ret >= 0) && (xret >= 0) &&
+ ((xattr.mode&S_IFMT) == S_IFREG) &&
+ !strnicmp(filename+4,"SCRAP.",6))
+ {
+ strcpy(ptr, filename + 4);
+ Fdelete(scrap_path);
+ }
+ }while(ret == 0);
+ Dclosedir(dirhandle);
+ }
+ }
+ }
+
+ strcat(scrap_path,"SCRAP.TXT");
+ return(FALSE);
+}
Index: config.c
===================================================================
RCS file: /mint/freemint/tools/hypview/config.c,v
retrieving revision 1.3
diff -u -r1.3 config.c
--- config.c 6 Apr 2008 15:47:03 -0000 1.3
+++ config.c 31 Aug 2009 09:34:19 -0000
@@ -1,178 +1,178 @@
-/*
- * $Id: config.c,v 1.3 2008/04/06 15:47:03 ggs Exp $
- *
- * HypView - (c) - 2006 Philipp Donze
- * 2006 - Philipp Donze & Odd Skancke
- *
- * A replacement hypertext viewer
- *
- * This file is part of HypView.
- *
- * HypView is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * HypView is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HypView; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include "diallib.h"
-#include "defs.h"
-
-void LoadConfig(void)
-{
- extern char cfg_comment;
- if(CfgOpenFile(PROGRAM_UNAME".CFG"))
- {
- char *variable;
-
- cfg_comment = '#';
-
- variable = CfgGetVariable("PATH=");
- if(*variable)
- strncpy(path_list,variable,512);
- variable=CfgGetVariable("DEFAULT=");
- if(*variable)
- strncpy(default_file,variable,DL_PATHMAX);
- variable=CfgGetVariable("KATALOG=");
- if(*variable)
- strncpy(catalog_file,variable,DL_PATHMAX);
-
- variable=CfgGetVariable("WINPOS=");
- if(*variable)
- {
- win_x=atoi(CfgExtractVarPart(variable,',',0));
- win_y=atoi(CfgExtractVarPart(variable,',',1));
- win_w=atoi(CfgExtractVarPart(variable,',',2));
- win_h=atoi(CfgExtractVarPart(variable,',',3));
- }
- variable = CfgGetVariable("WINADJUST=");
- if (*variable)
- adjust_winsize = atoi(variable);
-
- variable=CfgGetVariable("FONT=");
- if(*variable)
- {
- font_id=atoi(CfgExtractVarPart(variable,',',0));
- font_pt=atoi(CfgExtractVarPart(variable,',',1));
- }
- variable=CfgGetVariable("XFONT=");
- if(*variable)
- {
- xfont_id=atoi(CfgExtractVarPart(variable,',',0));
- xfont_pt=atoi(CfgExtractVarPart(variable,',',1));
- }
-
- variable=CfgGetVariable("BGRND_COLOR=");
- if(*variable && ext_workout[4]>=4) /* >= 16 Farben? */
- background_col=atoi(variable);
-
- variable=CfgGetVariable("TEXT_COLOR=");
- if(*variable && ext_workout[4]>=4) /* >= 16 Farben? */
- text_col=atoi(variable);
-
- variable=CfgGetVariable("LINK_COLOR=");
- if(*variable && ext_workout[4]>=4) /* >= 16 Farben? */
- link_col=atoi(variable);
-
- variable=CfgGetVariable("LINK_EFFECT=");
- if(*variable)
- link_effect=atoi(variable);
-
- variable=CfgGetVariable("TRANSPARENT_PICS=");
- if(*variable)
- transparent_pics=atoi(variable);
-
- variable=CfgGetVariable("BIN_COLUMNS=");
- if(*variable)
- binary_columns=atoi(variable);
-
- variable=CfgGetVariable("ASCII_TAB=");
- if(*variable)
- ascii_tab_size=atoi(variable);
-
- variable=CfgGetVariable("VA_START_NEWWIN=");
- if(*variable)
- va_start_newwin=atoi(variable);
-
- variable=CfgGetVariable("DEBUG_FILE=");
- if(*variable)
- strncpy(debug_file,variable,DL_NAMEMAX);
-
- variable=CfgGetVariable("CHECK_TIME=");
- if(*variable)
- check_time=atoi(variable);
-
- variable=CfgGetVariable("SKIN=");
- if(*variable)
- {
- char *ptr=skin_path;
- /* relative path given? */
- if(variable[1] != ':')
- {
- while(*ptr)
- ptr++;
- *ptr++=dir_separator;
-
- }
- strcpy(ptr,variable);
- }
- else
- *skin_path=0;
-
- variable=CfgGetVariable("ASCII_BREAK=");
- if(*variable)
- {
- ascii_break_len=max(0,atoi(variable));
- ascii_break_len=min(LINE_BUF-1,ascii_break_len);
- }
-
- variable=CfgGetVariable("INTELLIGENT_FULLER=");
- if(*variable)
- intelligent_fuller=atoi(variable);
-
- variable=CfgGetVariable("CLIPBRD_NEW_WINDOW=");
- if(*variable)
- clipbrd_new_window=atoi(variable);
-
- variable=CfgGetVariable("AV_WINDOW_CYCLE=");
- if(*variable)
- av_window_cycle=atoi(variable);
-
- variable=CfgGetVariable("MARKFILE=");
- if(*variable)
- strncpy(marken_path,variable,DL_PATHMAX);
-
- variable=CfgGetVariable("MARKFILE_SAVE_ASK=");
- if(*variable)
- marken_save_ask=atoi(variable);
-
- variable=CfgGetVariable("REF=");
- if(*variable)
- strncpy(all_ref,variable,DL_PATHMAX);
-
- variable=CfgGetVariable("HYPFIND=");
- if(*variable)
- strncpy(hypfind_path,variable,DL_PATHMAX);
-
- variable=CfgGetVariable("REFONLY=");
- if(*variable)
- refonly = TRUE;
-
- CfgCloseFile();
- }
- else
- {
- *skin_path=0;
- }
-}
-
+/*
+ * $Id: config.c,v 1.3 2008/04/06 15:47:03 ggs Exp $
+ *
+ * HypView - (c) - 2006 Philipp Donze
+ * 2006 - Philipp Donze & Odd Skancke
+ *
+ * A replacement hypertext viewer
+ *
+ * This file is part of HypView.
+ *
+ * HypView is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * HypView is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HypView; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include "diallib.h"
+#include "defs.h"
+
+void LoadConfig(void)
+{
+ extern char cfg_comment;
+ if(CfgOpenFile(PROGRAM_UNAME".CFG"))
+ {
+ char *variable;
+
+ cfg_comment = '#';
+
+ variable = CfgGetVariable("PATH=");
+ if(*variable)
+ strncpy(path_list,variable,512);
+ variable=CfgGetVariable("DEFAULT=");
+ if(*variable)
+ strncpy(default_file,variable,DL_PATHMAX);
+ variable=CfgGetVariable("KATALOG=");
+ if(*variable)
+ strncpy(catalog_file,variable,DL_PATHMAX);
+
+ variable=CfgGetVariable("WINPOS=");
+ if(*variable)
+ {
+ win_x=atoi(CfgExtractVarPart(variable,',',0));
+ win_y=atoi(CfgExtractVarPart(variable,',',1));
+ win_w=atoi(CfgExtractVarPart(variable,',',2));
+ win_h=atoi(CfgExtractVarPart(variable,',',3));
+ }
+ variable = CfgGetVariable("WINADJUST=");
+ if (*variable)
+ adjust_winsize = atoi(variable);
+
+ variable=CfgGetVariable("FONT=");
+ if(*variable)
+ {
+ font_id=atoi(CfgExtractVarPart(variable,',',0));
+ font_pt=atoi(CfgExtractVarPart(variable,',',1));
+ }
+ variable=CfgGetVariable("XFONT=");
+ if(*variable)
+ {
+ xfont_id=atoi(CfgExtractVarPart(variable,',',0));
+ xfont_pt=atoi(CfgExtractVarPart(variable,',',1));
+ }
+
+ variable=CfgGetVariable("BGRND_COLOR=");
+ if(*variable && ext_workout[4]>=4) /* >= 16 Farben? */
+ background_col=atoi(variable);
+
+ variable=CfgGetVariable("TEXT_COLOR=");
+ if(*variable && ext_workout[4]>=4) /* >= 16 Farben? */
+ text_col=atoi(variable);
+
+ variable=CfgGetVariable("LINK_COLOR=");
+ if(*variable && ext_workout[4]>=4) /* >= 16 Farben? */
+ link_col=atoi(variable);
+
+ variable=CfgGetVariable("LINK_EFFECT=");
+ if(*variable)
+ link_effect=atoi(variable);
+
+ variable=CfgGetVariable("TRANSPARENT_PICS=");
+ if(*variable)
+ transparent_pics=atoi(variable);
+
+ variable=CfgGetVariable("BIN_COLUMNS=");
+ if(*variable)
+ binary_columns=atoi(variable);
+
+ variable=CfgGetVariable("ASCII_TAB=");
+ if(*variable)
+ ascii_tab_size=atoi(variable);
+
+ variable=CfgGetVariable("VA_START_NEWWIN=");
+ if(*variable)
+ va_start_newwin=atoi(variable);
+
+ variable=CfgGetVariable("DEBUG_FILE=");
+ if(*variable)
+ strncpy(debug_file,variable,DL_NAMEMAX);
+
+ variable=CfgGetVariable("CHECK_TIME=");
+ if(*variable)
+ check_time=atoi(variable);
+
+ variable=CfgGetVariable("SKIN=");
+ if(*variable)
+ {
+ char *ptr=skin_path;
+ /* relative path given? */
+ if(variable[1] != ':')
+ {
+ while(*ptr)
+ ptr++;
+ *ptr++=dir_separator;
+
+ }
+ strcpy(ptr,variable);
+ }
+ else
+ *skin_path=0;
+
+ variable=CfgGetVariable("ASCII_BREAK=");
+ if(*variable)
+ {
+ ascii_break_len=max(0,atoi(variable));
+ ascii_break_len=min(LINE_BUF-1,ascii_break_len);
+ }
+
+ variable=CfgGetVariable("INTELLIGENT_FULLER=");
+ if(*variable)
+ intelligent_fuller=atoi(variable);
+
+ variable=CfgGetVariable("CLIPBRD_NEW_WINDOW=");
+ if(*variable)
+ clipbrd_new_window=atoi(variable);
+
+ variable=CfgGetVariable("AV_WINDOW_CYCLE=");
+ if(*variable)
+ av_window_cycle=atoi(variable);
+
+ variable=CfgGetVariable("MARKFILE=");
+ if(*variable)
+ strncpy(marken_path,variable,DL_PATHMAX);
+
+ variable=CfgGetVariable("MARKFILE_SAVE_ASK=");
+ if(*variable)
+ marken_save_ask=atoi(variable);
+
+ variable=CfgGetVariable("REF=");
+ if(*variable)
+ strncpy(all_ref,variable,DL_PATHMAX);
+
+ variable=CfgGetVariable("HYPFIND=");
+ if(*variable)
+ strncpy(hypfind_path,variable,DL_PATHMAX);
+
+ variable=CfgGetVariable("REFONLY=");
+ if(*variable)
+ refonly = TRUE;
+
+ CfgCloseFile();
+ }
+ else
+ {
+ *skin_path=0;
+ }
+}
+
Index: dl_avcmd.c
===================================================================
RCS file: /mint/freemint/tools/hypview/dl_avcmd.c,v
retrieving revision 1.3
diff -u -r1.3 dl_avcmd.c
--- dl_avcmd.c 6 Apr 2008 15:47:03 -0000 1.3
+++ dl_avcmd.c 31 Aug 2009 09:34:19 -0000
@@ -1,253 +1,253 @@
-/*
- * $Id: dl_avcmd.c,v 1.3 2008/04/06 15:47:03 ggs Exp $
- *
- * HypView - (c) - 2006 Philipp Donze
- * 2006 - Philipp Donze & Odd Skancke
- *
- * A replacement hypertext viewer
- *
- * This file is part of HypView.
- *
- * HypView is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * HypView is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HypView; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include <gem.h>
-#include "include/av.h"
-#include "diallib.h"
-
-extern short ap_id,server_id;
-
-/* Nachfrage nach dem Konfigurationsstring, der mit AV_STATUS gesetzt wurde */
-void DoAV_GETSTATUS(void)
-{
- short msg[8] = {AV_GETSTATUS,0,0,0,0,0,0,0};
- msg[1] = ap_id;
- appl_write(server_id,16,msg);
-}
-
-/* Uebermittelt einen Konfigurationsstring, den der Server speichert */
-void DoAV_STATUS(char *string)
-{
- short msg[8]={AV_STATUS,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- *(char **)&msg[3]=string;
- appl_write(server_id,16,msg);
-}
-
-/* Uebermittelt dem Server einen Tastendruck, der nicht verarbeitet wurde */
-void DoAV_SENDKEY(short kbd_state, short code)
-{
- short msg[8]={AV_SENDKEY,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- msg[3]=kbd_state;
- msg[4]=code;
- appl_write(server_id,16,msg);
-}
-
-/* Fragt beim Server nach, mit welchem Font die Dateien dargestellt werden */
-void DoAV_ASKFILEFONT(void)
-{
- short msg[8]={AV_ASKFILEFONT,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- appl_write(server_id,16,msg);
-}
-
-/* Fragt beim Server nach dem Konsolen-Font */
-void DoAV_ASKCONFONT(void)
-{
- short msg[8]={AV_ASKCONFONT,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- appl_write(server_id,16,msg);
-}
-
-/* Fragt beim Server nach dem selektierten Objekt */
-void DoAV_ASKOBJECT(void)
-{
- short msg[8]={AV_ASKOBJECT,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- appl_write(server_id,16,msg);
-}
-
-/* Der Server soll ein Consolenfenster oeffnen */
-void DoAV_OPENCONSOLE(void)
-{
- short msg[8]={AV_OPENCONSOLE,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- appl_write(server_id,16,msg);
-}
-
-/* Der Server soll ein Verzeichnisfenster oeffnen */
-void DoAV_OPENWIND(char *path, char *wildcard)
-{
- short msg[8]={AV_OPENWIND,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- *(char **)&msg[3]=path;
- *(char **)&msg[5]=wildcard;
- appl_write(server_id,16,msg);
-}
-
-/* Der Server soll ein Programmstarten oder eine Datei oeffnen */
-void DoAV_STARTPROG(char *path, char *commandline, short id)
-{
- short msg[8]={AV_STARTPROG,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- *(char **)&msg[3]=path;
- *(char **)&msg[5]=commandline;
- msg[7]=id;
- appl_write(server_id,16,msg);
-}
-
-/* Es wird dem Server ein neues Fenster gemeldet (fuer Cycling und Drag&Drop) */
-void DoAV_ACCWINDOPEN(short handle)
-{
- short msg[8]={AV_ACCWINDOPEN,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- msg[3]=handle;
- appl_write(server_id,16,msg);
-}
-
-/* Es wird dem Server mitgeteilt, dass ein Fenster geschlossen wurde */
-void DoAV_ACCWINDCLOSED(short handle)
-{
- short msg[8]={AV_ACCWINDCLOSED,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- msg[3]=handle;
- appl_write(server_id,16,msg);
-}
-
-/* Der Server soll die Dateien kopieren, die ihm zuvor gemeldet wurden */
-void DoAV_COPY_DRAGGED(short kbd_state, char *path)
-{
- short msg[8]={AV_COPY_DRAGGED,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- msg[3]=kbd_state;
- *(char **)&msg[4]=path;
- appl_write(server_id,16,msg);
-}
-
-/* Der Server soll das Verzeichnisfenster <path> neu einlesen */
-void DoAV_PATH_UPDATE(char *path)
-{
- short msg[8]={AV_PATH_UPDATE,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- *(char **)&msg[3]=path;
- appl_write(server_id,16,msg);
-}
-
-/* Fragt beim Server, was sich an der Position x,y befindet */
-void DoAV_WHAT_IZIT(short x,short y)
-{
- short msg[8]={AV_WHAT_IZIT,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- msg[3]=x;
- msg[4]=y;
- appl_write(server_id,16,msg);
-}
-
-/* Teilt dem Server mit, dass Objekte auf sein Fenster gezogen wurden */
-void DoAV_DRAG_ON_WINDOW(short x,short y, short kbd_state, char *path)
-{
- short msg[8]={AV_DRAG_ON_WINDOW,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- msg[3]=x;
- msg[4]=y;
- msg[5]=kbd_state;
- *(char **)&msg[6]=path;
- appl_write(server_id,16,msg);
-}
-
-/* Antwort auf VA_START */
-void DoAV_STARTED(char *ptr)
-{
- short msg[8]={AV_STARTED,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- *(char **)&msg[3]=ptr;
- appl_write(server_id,16,msg);
-}
-
-/* Der Server soll ein bestimmtes Fenster oeffnen */
-void DoAV_XWIND(char *path, char *wild_card, short bits)
-{
- short msg[8]={AV_XWIND,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- *(char **)&msg[3]=path;
- *(char **)&msg[5]=wild_card;
- msg[7]=bits;
- appl_write(server_id,16,msg);
-}
-
-/* Der Server soll den passenden Viewer fuer eine Datei starten */
-void DoAV_VIEW(char *path)
-{
- short msg[8]={AV_VIEW,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- *(char **)&msg[3]=path;
- appl_write(server_id,16,msg);
-}
-
-/* Der Server soll die Datei-/Ordnerinformationen anzeigen */
-void DoAV_FILEINFO(char *path)
-{
- short msg[8]={AV_FILEINFO,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- *(char **)&msg[3]=path;
- appl_write(server_id,16,msg);
-}
-
-/* Der Server soll die Dateien/Ordner ans Ziel kopieren */
-void DoAV_COPYFILE(char *file_list, char *dest_path,short bits)
-{
- short msg[8]={AV_COPYFILE,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- *(char **)&msg[3]=file_list;
- *(char **)&msg[5]=dest_path;
- msg[7]=bits;
- appl_write(server_id,16,msg);
-}
-
-/* Der Server soll die Dateien/Ordner loeschen */
-void DoAV_DELFILE(char *file_list)
-{
- short msg[8]={AV_DELFILE,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- *(char **)&msg[3]=file_list;
- appl_write(server_id,16,msg);
-}
-
-/* Teilt dem Server mit, wo das naechste Fenster geffnet werden soll */
-void DoAV_SETWINDPOS(short x,short y,short w,short h)
-{
- short msg[8]={AV_SETWINDPOS,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- msg[3]=x;
- msg[4]=y;
- msg[5]=w;
- msg[6]=h;
- appl_write(server_id,16,msg);
-}
-
-/* Dem Server wird ein Mouseklick gemeldet */
-void DoAV_SENDCLICK(EVNTDATA *m, short ev_return)
-{
- short msg[8]={AV_SENDCLICK,0,0,0,0,0,0,0};
- msg[1]=ap_id;
- msg[3]=m->x;
- msg[4]=m->y;
- msg[5]=m->bstate;
- msg[6]=m->kstate;
- msg[7]=ev_return;
-
- appl_write(server_id,16,msg);
-}
+/*
+ * $Id: dl_avcmd.c,v 1.3 2008/04/06 15:47:03 ggs Exp $
+ *
+ * HypView - (c) - 2006 Philipp Donze
+ * 2006 - Philipp Donze & Odd Skancke
+ *
+ * A replacement hypertext viewer
+ *
+ * This file is part of HypView.
+ *
+ * HypView is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * HypView is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HypView; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <gem.h>
+#include "include/av.h"
+#include "diallib.h"
+
+extern short ap_id,server_id;
+
+/* Nachfrage nach dem Konfigurationsstring, der mit AV_STATUS gesetzt wurde */
+void DoAV_GETSTATUS(void)
+{
+ short msg[8] = {AV_GETSTATUS,0,0,0,0,0,0,0};
+ msg[1] = ap_id;
+ appl_write(server_id,16,msg);
+}
+
+/* Uebermittelt einen Konfigurationsstring, den der Server speichert */
+void DoAV_STATUS(char *string)
+{
+ short msg[8]={AV_STATUS,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ *(char **)&msg[3]=string;
+ appl_write(server_id,16,msg);
+}
+
+/* Uebermittelt dem Server einen Tastendruck, der nicht verarbeitet wurde */
+void DoAV_SENDKEY(short kbd_state, short code)
+{
+ short msg[8]={AV_SENDKEY,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ msg[3]=kbd_state;
+ msg[4]=code;
+ appl_write(server_id,16,msg);
+}
+
+/* Fragt beim Server nach, mit welchem Font die Dateien dargestellt werden */
+void DoAV_ASKFILEFONT(void)
+{
+ short msg[8]={AV_ASKFILEFONT,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ appl_write(server_id,16,msg);
+}
+
+/* Fragt beim Server nach dem Konsolen-Font */
+void DoAV_ASKCONFONT(void)
+{
+ short msg[8]={AV_ASKCONFONT,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ appl_write(server_id,16,msg);
+}
+
+/* Fragt beim Server nach dem selektierten Objekt */
+void DoAV_ASKOBJECT(void)
+{
+ short msg[8]={AV_ASKOBJECT,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ appl_write(server_id,16,msg);
+}
+
+/* Der Server soll ein Consolenfenster oeffnen */
+void DoAV_OPENCONSOLE(void)
+{
+ short msg[8]={AV_OPENCONSOLE,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ appl_write(server_id,16,msg);
+}
+
+/* Der Server soll ein Verzeichnisfenster oeffnen */
+void DoAV_OPENWIND(char *path, char *wildcard)
+{
+ short msg[8]={AV_OPENWIND,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ *(char **)&msg[3]=path;
+ *(char **)&msg[5]=wildcard;
+ appl_write(server_id,16,msg);
+}
+
+/* Der Server soll ein Programmstarten oder eine Datei oeffnen */
+void DoAV_STARTPROG(char *path, char *commandline, short id)
+{
+ short msg[8]={AV_STARTPROG,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ *(char **)&msg[3]=path;
+ *(char **)&msg[5]=commandline;
+ msg[7]=id;
+ appl_write(server_id,16,msg);
+}
+
+/* Es wird dem Server ein neues Fenster gemeldet (fuer Cycling und Drag&Drop) */
+void DoAV_ACCWINDOPEN(short handle)
+{
+ short msg[8]={AV_ACCWINDOPEN,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ msg[3]=handle;
+ appl_write(server_id,16,msg);
+}
+
+/* Es wird dem Server mitgeteilt, dass ein Fenster geschlossen wurde */
+void DoAV_ACCWINDCLOSED(short handle)
+{
+ short msg[8]={AV_ACCWINDCLOSED,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ msg[3]=handle;
+ appl_write(server_id,16,msg);
+}
+
+/* Der Server soll die Dateien kopieren, die ihm zuvor gemeldet wurden */
+void DoAV_COPY_DRAGGED(short kbd_state, char *path)
+{
+ short msg[8]={AV_COPY_DRAGGED,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ msg[3]=kbd_state;
+ *(char **)&msg[4]=path;
+ appl_write(server_id,16,msg);
+}
+
+/* Der Server soll das Verzeichnisfenster <path> neu einlesen */
+void DoAV_PATH_UPDATE(char *path)
+{
+ short msg[8]={AV_PATH_UPDATE,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ *(char **)&msg[3]=path;
+ appl_write(server_id,16,msg);
+}
+
+/* Fragt beim Server, was sich an der Position x,y befindet */
+void DoAV_WHAT_IZIT(short x,short y)
+{
+ short msg[8]={AV_WHAT_IZIT,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ msg[3]=x;
+ msg[4]=y;
+ appl_write(server_id,16,msg);
+}
+
+/* Teilt dem Server mit, dass Objekte auf sein Fenster gezogen wurden */
+void DoAV_DRAG_ON_WINDOW(short x,short y, short kbd_state, char *path)
+{
+ short msg[8]={AV_DRAG_ON_WINDOW,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ msg[3]=x;
+ msg[4]=y;
+ msg[5]=kbd_state;
+ *(char **)&msg[6]=path;
+ appl_write(server_id,16,msg);
+}
+
+/* Antwort auf VA_START */
+void DoAV_STARTED(char *ptr)
+{
+ short msg[8]={AV_STARTED,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ *(char **)&msg[3]=ptr;
+ appl_write(server_id,16,msg);
+}
+
+/* Der Server soll ein bestimmtes Fenster oeffnen */
+void DoAV_XWIND(char *path, char *wild_card, short bits)
+{
+ short msg[8]={AV_XWIND,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ *(char **)&msg[3]=path;
+ *(char **)&msg[5]=wild_card;
+ msg[7]=bits;
+ appl_write(server_id,16,msg);
+}
+
+/* Der Server soll den passenden Viewer fuer eine Datei starten */
+void DoAV_VIEW(char *path)
+{
+ short msg[8]={AV_VIEW,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ *(char **)&msg[3]=path;
+ appl_write(server_id,16,msg);
+}
+
+/* Der Server soll die Datei-/Ordnerinformationen anzeigen */
+void DoAV_FILEINFO(char *path)
+{
+ short msg[8]={AV_FILEINFO,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ *(char **)&msg[3]=path;
+ appl_write(server_id,16,msg);
+}
+
+/* Der Server soll die Dateien/Ordner ans Ziel kopieren */
+void DoAV_COPYFILE(char *file_list, char *dest_path,short bits)
+{
+ short msg[8]={AV_COPYFILE,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ *(char **)&msg[3]=file_list;
+ *(char **)&msg[5]=dest_path;
+ msg[7]=bits;
+ appl_write(server_id,16,msg);
+}
+
+/* Der Server soll die Dateien/Ordner loeschen */
+void DoAV_DELFILE(char *file_list)
+{
+ short msg[8]={AV_DELFILE,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ *(char **)&msg[3]=file_list;
+ appl_write(server_id,16,msg);
+}
+
+/* Teilt dem Server mit, wo das naechste Fenster geffnet werden soll */
+void DoAV_SETWINDPOS(short x,short y,short w,short h)
+{
+ short msg[8]={AV_SETWINDPOS,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ msg[3]=x;
+ msg[4]=y;
+ msg[5]=w;
+ msg[6]=h;
+ appl_write(server_id,16,msg);
+}
+
+/* Dem Server wird ein Mouseklick gemeldet */
+void DoAV_SENDCLICK(EVNTDATA *m, short ev_return)
+{
+ short msg[8]={AV_SENDCLICK,0,0,0,0,0,0,0};
+ msg[1]=ap_id;
+ msg[3]=m->x;
+ msg[4]=m->y;
+ msg[5]=m->bstate;
+ msg[6]=m->kstate;
+ msg[7]=ev_return;
+
+ appl_write(server_id,16,msg);
+}
Index: dl_bubbl.c
===================================================================
RCS file: /mint/freemint/tools/hypview/dl_bubbl.c,v
retrieving revision 1.2
diff -u -r1.2 dl_bubbl.c
--- dl_bubbl.c 12 Feb 2006 15:14:29 -0000 1.2
+++ dl_bubbl.c 31 Aug 2009 09:34:19 -0000
@@ -1,105 +1,105 @@
-/*
- * $Id: dl_bubbl.c,v 1.2 2006/02/12 15:14:29 pdonze Exp $
- *
- * HypView - (c) - 2006 Philipp Donze
- * 2006 - Philipp Donze & Odd Skancke
- *
- * A replacement hypertext viewer
- *
- * This file is part of HypView.
- *
- * HypView is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * HypView is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HypView; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include <gem.h>
-#include "diallib.h"
-
-#if USE_BUBBLEGEM == YES
-#include "bubble/bgh.h"
-
-char *bub_fname=BUBBLEGEM_FILE;
-
-void *Help;
-
-void DoInitBubble(void);
-void DoExitBubble(void);
-void Bubble(short mx,short my);
-
-
-void DoInitBubble(void)
-{
- Help=BGH_load(bub_fname);
-}
-
-void DoExitBubble(void)
-{
- BGH_free(Help);
-}
-
-void
-Bubble(short mx,short my)
-{
- CHAIN_DATA *ptr;
- short gruppe,index,typ=-1;
-
- ptr=find_ptr_by_whandle(wind_find(mx,my));
-
- if(!ptr)
- return;
-
- if(ptr->type==WIN_DIALOG)
- {
- OBJECT *tree=((DIALOG_DATA *)ptr)->obj;
- short i;
- if(ptr->status & WIS_ICONIFY)
- {
- GRECT box;
- tree=tree_addr[DIAL_LIBRARY];
- wind_get_grect(ptr->whandle, WF_WORKXYWH,&box);
- tree_addr[DIAL_LIBRARY][0].ob_x=box.g_x;
- tree_addr[DIAL_LIBRARY][0].ob_y=box.g_y;
- }
-
- index=objc_find(tree,ROOT,MAX_DEPTH,mx,my);
- if(index==-1)
- return;
-
- for(i=0;i<tree_count;i++)
- {
- if(tree_addr[i]==tree)
- gruppe=i;
- }
- typ=BGH_DIAL;
- }
- else if(ptr->type==WIN_WINDOW)
- {
- short data[4];
- data[0]=mx;
- data[1]=my;
- data[2]=-1;
- ((WINDOW_DATA *)ptr)->proc((WINDOW_DATA *)ptr,WIND_BUBBLE,data);
- if(data[2]!=-1)
- {
- gruppe=data[2];
- index=data[3];
- typ=BGH_USER;
- }
- }
-
- if(typ!=-1)
- BGH_action(Help,mx,my,typ,gruppe,index);
-}
-
-#endif
+/*
+ * $Id: dl_bubbl.c,v 1.2 2006/02/12 15:14:29 pdonze Exp $
+ *
+ * HypView - (c) - 2006 Philipp Donze
+ * 2006 - Philipp Donze & Odd Skancke
+ *
+ * A replacement hypertext viewer
+ *
+ * This file is part of HypView.
+ *
+ * HypView is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * HypView is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HypView; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <gem.h>
+#include "diallib.h"
+
+#if USE_BUBBLEGEM == YES
+#include "bubble/bgh.h"
+
+char *bub_fname=BUBBLEGEM_FILE;
+
+void *Help;
+
+void DoInitBubble(void);
+void DoExitBubble(void);
+void Bubble(short mx,short my);
+
+
+void DoInitBubble(void)
+{
+ Help=BGH_load(bub_fname);
+}
+
+void DoExitBubble(void)
+{
+ BGH_free(Help);
+}
+
+void
+Bubble(short mx,short my)
+{
+ CHAIN_DATA *ptr;
+ short gruppe,index,typ=-1;
+
+ ptr=find_ptr_by_whandle(wind_find(mx,my));
+
+ if(!ptr)
+ return;
+
+ if(ptr->type==WIN_DIALOG)
+ {
+ OBJECT *tree=((DIALOG_DATA *)ptr)->obj;
+ short i;
+ if(ptr->status & WIS_ICONIFY)
+ {
+ GRECT box;
+ tree=tree_addr[DIAL_LIBRARY];
+ wind_get_grect(ptr->whandle, WF_WORKXYWH,&box);
+ tree_addr[DIAL_LIBRARY][0].ob_x=box.g_x;
+ tree_addr[DIAL_LIBRARY][0].ob_y=box.g_y;
+ }
+
+ index=objc_find(tree,ROOT,MAX_DEPTH,mx,my);
+ if(index==-1)
+ return;
+
+ for(i=0;i<tree_count;i++)
+ {
+ if(tree_addr[i]==tree)
+ gruppe=i;
+ }
+ typ=BGH_DIAL;
+ }
+ else if(ptr->type==WIN_WINDOW)
+ {
+ short data[4];
+ data[0]=mx;
+ data[1]=my;
+ data[2]=-1;
+ ((WINDOW_DATA *)ptr)->proc((WINDOW_DATA *)ptr,WIND_BUBBLE,data);
+ if(data[2]!=-1)
+ {
+ gruppe=data[2];
+ index=data[3];
+ typ=BGH_USER;
+ }
+ }
+
+ if(typ!=-1)
+ BGH_action(Help,mx,my,typ,gruppe,index);
+}
+
+#endif
Index: dl_user.h
===================================================================
RCS file: /mint/freemint/tools/hypview/dl_user.h,v
retrieving revision 1.5
diff -u -r1.5 dl_user.h
--- dl_user.h 8 May 2006 21:02:07 -0000 1.5
+++ dl_user.h 31 Aug 2009 09:34:20 -0000
@@ -1,149 +1,149 @@
-/*
- * $Id: dl_user.h,v 1.5 2006/05/08 21:02:07 pdonze Exp $
- *
- * HypView - (c) 2001 - 2006 Philipp Donze
- * 2006 - Philipp Donze & Odd Skancke
- *
- * A replacement hypertext viewer
- *
- * This file is part of HypView.
- *
- * HypView is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * HypView is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HypView; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef _dl_user_h
-#define _dl_user_h
-/********************************************
- * begin options *
- ********************************************/
-/* #define GENERATE_DIAGS */
-/* Debug mode? (=add debugging output while compiling) */
-#define DEBUG OFF
-/* Create debug log file? (=put all debugging output into file) */
-#define DEBUG_LOG NO
-
-/* Main language for this application (=built in error messages) */
-#define LANGUAGE ENGLISH
-
-/* Use MagiC specific functions? (=limit usage on MagiC compatible systems) */
-#define MAGIC_ONLY NO
-
-/* Use a global VDI workstation? */
-#define USE_GLOBAL_VDI YES
-/* Save color palette on init? */
-#define SAVE_COLORS NO
-
-/* Closing a window/dialog will automatically remove all related structures */
-#define WIND_CLOSE_IS_REMOVE YES
-#define DIAL_CLOSE_IS_REMOVE YES
-
-/* Use a global keyboard shortcut handler (=needs DoUserKeybd() in dl_user.c) */
-#define USE_GLOBAL_KEYBOARD NO
-
-/* Use user specific events? (=Pass events to DoUserEvents() before handling) */
-#define USE_USER_EVENTS YES
-
-/* Install/remove menubar on initialization? (Needs a resource object MENU) */
-#define USE_MENU NO
-
-/* Use window dialog management routines? (Based on WDialog) */
-#define USE_DIALOG YES
-
-/* Use normal window management routines? */
-#define USE_WINDOW YES
-/* Automatically set the title when iconifying according to RSC file */
-#define SET_ICONIFY_NAME NO
-/* Open a separate VDI workstation for each new window */
-#define OPEN_VDI_WORKSTATION NO
-/* Use a logical raster for computations (=not the pixel raster) */
-#define USE_LOGICALRASTER YES
-/* Use toolbar routines */
-#define USE_TOOLBAR YES
-
-/* Use fileselector routines */
-#define USE_FILESELECTOR YES
-/* Use fontselector routines */
-#define USE_FONTSELECTOR NO
-
-/* Level of AV protocol support:
- 0 = none
- 1 = minimal (limit on VA_START, AV_SENDCLICK and AV_SENDKEY reception)
- 2 = normal (AV_PROTOKOL, AV_EXIT, VA_PROTOSTATUS, VA_START,
- AV_SENDCLICK and AV_SENDKEY)
- 3 = full (Sending and reception of all possible messages)
- Needs DoVA_Message()!
-*/
-#define USE_AV_PROTOCOL 3
-
-/* Support Drag&Drop protokol */
-#define USE_DRAGDROP YES
-
-/* Support long file names (=Pdomain(PD_MINT)) */
-#define USE_LONGFILENAMES YES
-
-/* Enable support for long edit fields (As in MagiC) */
-#define USE_LONGEDITFIELDS NO
-
-/* BubbleGEM help system */
-#define USE_BUBBLEGEM NO
-/* ST-Guide help system */
-#define USE_STGUIDE NO
-
-/* Document history protocol */
-#define USE_DOCUMENTHISTORY YES
-
-/* Name of user specific prototype */
-#define SPEC_DEFINITION_FILE "defs.h"
-
-/* "nice" form of the application name */
-#define PROGRAM_NAME "HypView"
-/* Application name in uppercase letters */
-#define PROGRAM_UNAME "HYP_VIEW"
-/* Name of the resource file */
-#define RESOURCE_FILE "hyp_view.rsc"
-/* Name of the resource header file */
-#define RESOURCE_HEADER_FILE "hyp_view.h"
-/* Name of the BubbleGEM header file */
-#define BUBBLEGEM_FILE "hyp_view.bgh"
-/* Name of the ST-Guide help file */
-#define STGUIDE_FILE "*:\\hyp_view.hyp "
-
-/* Maximum line lenght in the configuration file */
-#define CFG_MAXLINESIZE 80
-/* Look for configuration file in the HOME folder? */
-#define CFG_IN_HOME YES
-
-/* Number of supported Drag&Drop formats */
-#define MAX_DDFORMAT 8
-
-/* Maximum number of simultaneous iconified windows */
-#define MAX_ICONIFY_PLACE 16
-/* Maximum number of recursion levels for modal dialogs */
-#define MAX_MODALRECURSION 1
-
-
-/* event_multi parameters */
-#define EVENTS MU_MESAG|MU_KEYBD|MU_BUTTON
-#define MBCLICKS 2|0x0100
-#define MBMASK 3
-#define MBSTATE 0
-#define MBLOCK1 NULL
-#define MBLOCK2 NULL
-#define WAIT 0L
-
-/********************************************
- * end options *
- ********************************************/
-#endif /* _dl_user_h */
+/*
+ * $Id: dl_user.h,v 1.5 2006/05/08 21:02:07 pdonze Exp $
+ *
+ * HypView - (c) 2001 - 2006 Philipp Donze
+ * 2006 - Philipp Donze & Odd Skancke
+ *
+ * A replacement hypertext viewer
+ *
+ * This file is part of HypView.
+ *
+ * HypView is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * HypView is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HypView; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef _dl_user_h
+#define _dl_user_h
+/********************************************
+ * begin options *
+ ********************************************/
+/* #define GENERATE_DIAGS */
+/* Debug mode? (=add debugging output while compiling) */
+#define DEBUG OFF
+/* Create debug log file? (=put all debugging output into file) */
+#define DEBUG_LOG NO
+
+/* Main language for this application (=built in error messages) */
+#define LANGUAGE ENGLISH
+
+/* Use MagiC specific functions? (=limit usage on MagiC compatible systems) */
+#define MAGIC_ONLY NO
+
+/* Use a global VDI workstation? */
+#define USE_GLOBAL_VDI YES
+/* Save color palette on init? */
+#define SAVE_COLORS NO
+
+/* Closing a window/dialog will automatically remove all related structures */
+#define WIND_CLOSE_IS_REMOVE YES
+#define DIAL_CLOSE_IS_REMOVE YES
+
+/* Use a global keyboard shortcut handler (=needs DoUserKeybd() in dl_user.c) */
+#define USE_GLOBAL_KEYBOARD NO
+
+/* Use user specific events? (=Pass events to DoUserEvents() before handling) */
+#define USE_USER_EVENTS YES
+
+/* Install/remove menubar on initialization? (Needs a resource object MENU) */
+#define USE_MENU NO
+
+/* Use window dialog management routines? (Based on WDialog) */
+#define USE_DIALOG YES
+
+/* Use normal window management routines? */
+#define USE_WINDOW YES
+/* Automatically set the title when iconifying according to RSC file */
+#define SET_ICONIFY_NAME NO
+/* Open a separate VDI workstation for each new window */
+#define OPEN_VDI_WORKSTATION NO
+/* Use a logical raster for computations (=not the pixel raster) */
+#define USE_LOGICALRASTER YES
+/* Use toolbar routines */
+#define USE_TOOLBAR YES
+
+/* Use fileselector routines */
+#define USE_FILESELECTOR YES
+/* Use fontselector routines */
+#define USE_FONTSELECTOR NO
+
+/* Level of AV protocol support:
+ 0 = none
+ 1 = minimal (limit on VA_START, AV_SENDCLICK and AV_SENDKEY reception)
+ 2 = normal (AV_PROTOKOL, AV_EXIT, VA_PROTOSTATUS, VA_START,
+ AV_SENDCLICK and AV_SENDKEY)
+ 3 = full (Sending and reception of all possible messages)
+ Needs DoVA_Message()!
+*/
+#define USE_AV_PROTOCOL 3
+
+/* Support Drag&Drop protokol */
+#define USE_DRAGDROP YES
+
+/* Support long file names (=Pdomain(PD_MINT)) */
+#define USE_LONGFILENAMES YES
+
+/* Enable support for long edit fields (As in MagiC) */
+#define USE_LONGEDITFIELDS NO
+
+/* BubbleGEM help system */
+#define USE_BUBBLEGEM NO
+/* ST-Guide help system */
+#define USE_STGUIDE NO
+
+/* Document history protocol */
+#define USE_DOCUMENTHISTORY YES
+
+/* Name of user specific prototype */
+#define SPEC_DEFINITION_FILE "defs.h"
+
+/* "nice" form of the application name */
+#define PROGRAM_NAME "HypView"
+/* Application name in uppercase letters */
+#define PROGRAM_UNAME "HYP_VIEW"
+/* Name of the resource file */
+#define RESOURCE_FILE "hyp_view.rsc"
+/* Name of the resource header file */
+#define RESOURCE_HEADER_FILE "hyp_view.h"
+/* Name of the BubbleGEM header file */
+#define BUBBLEGEM_FILE "hyp_view.bgh"
+/* Name of the ST-Guide help file */
+#define STGUIDE_FILE "*:\\hyp_view.hyp "
+
+/* Maximum line lenght in the configuration file */
+#define CFG_MAXLINESIZE 80
+/* Look for configuration file in the HOME folder? */
+#define CFG_IN_HOME YES
+
+/* Number of supported Drag&Drop formats */
+#define MAX_DDFORMAT 8
+
+/* Maximum number of simultaneous iconified windows */
+#define MAX_ICONIFY_PLACE 16
+/* Maximum number of recursion levels for modal dialogs */
+#define MAX_MODALRECURSION 1
+
+
+/* event_multi parameters */
+#define EVENTS MU_MESAG|MU_KEYBD|MU_BUTTON
+#define MBCLICKS 2|0x0100
+#define MBMASK 3
+#define MBSTATE 0
+#define MBLOCK1 NULL
+#define MBLOCK2 NULL
+#define WAIT 0L
+
+/********************************************
+ * end options *
+ ********************************************/
+#endif /* _dl_user_h */
Index: error.c
===================================================================
RCS file: /mint/freemint/tools/hypview/error.c,v
retrieving revision 1.2
diff -u -r1.2 error.c
--- error.c 12 Feb 2006 15:14:30 -0000 1.2
+++ error.c 31 Aug 2009 09:34:20 -0000
@@ -1,56 +1,56 @@
-/*
- * $Id: error.c,v 1.2 2006/02/12 15:14:30 pdonze Exp $
- *
- * HypView - (c) - 2006 Philipp Donze
- * 2006 - Philipp Donze & Odd Skancke
- *
- * A replacement hypertext viewer
- *
- * This file is part of HypView.
- *
- * HypView is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * HypView is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HypView; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <gem.h>
-#include "diallib.h"
-#include "defs.h"
-
-void FileError(char *path,char *str)
-{
-char *filename;
-char ZStr[255];
-
- filename=strrchr(path,dir_separator);
- if(!filename++)
- filename=path;
-
- sprintf ( ZStr, "[3][ File <%s>: | %s ][ OK ]", filename, str );
- form_alert ( 1, ZStr );
-}
-
-void FileErrorNr(char *path,long ret)
-{
-char *filename;
- filename=strrchr(path,dir_separator);
- if(!filename++)
- filename = path;
- if((ret == ENOENT/*EFILNF*/) || (ret == ENOTDIR/*EPTHNF*/))
- Debug("ERROR: File <%s>: file not found",filename);
- else
- Debug("ERROR: File <%s>: error %ld",filename,ret);
-}
+/*
+ * $Id: error.c,v 1.2 2006/02/12 15:14:30 pdonze Exp $
+ *
+ * HypView - (c) - 2006 Philipp Donze
+ * 2006 - Philipp Donze & Odd Skancke
+ *
+ * A replacement hypertext viewer
+ *
+ * This file is part of HypView.
+ *
+ * HypView is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * HypView is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HypView; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <gem.h>
+#include "diallib.h"
+#include "defs.h"
+
+void FileError(char *path,char *str)
+{
+char *filename;
+char ZStr[255];
+
+ filename=strrchr(path,dir_separator);
+ if(!filename++)
+ filename=path;
+
+ sprintf ( ZStr, "[3][ File <%s>: | %s ][ OK ]", filename, str );
+ form_alert ( 1, ZStr );
+}
+
+void FileErrorNr(char *path,long ret)
+{
+char *filename;
+ filename=strrchr(path,dir_separator);
+ if(!filename++)
+ filename = path;
+ if((ret == ENOENT/*EFILNF*/) || (ret == ENOTDIR/*EPTHNF*/))
+ Debug("ERROR: File <%s>: file not found",filename);
+ else
+ Debug("ERROR: File <%s>: error %ld",filename,ret);
+}
Index: hyp_view.c
===================================================================
RCS file: /mint/freemint/tools/hypview/hyp_view.c,v
retrieving revision 1.3
diff -u -r1.3 hyp_view.c
--- hyp_view.c 6 Apr 2008 15:47:03 -0000 1.3
+++ hyp_view.c 31 Aug 2009 09:34:20 -0000
@@ -1,77 +1,77 @@
-/*
- * $Id: hyp_view.c,v 1.3 2008/04/06 15:47:03 ggs Exp $
- *
- * HypView - (c) - 2006 Philipp Donze
- * 2006 - Philipp Donze & Odd Skancke
- *
- * A replacement hypertext viewer
- *
- * This file is part of HypView.
- *
- * HypView is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * HypView is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HypView; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include <gem.h>
-#include "diallib.h"
-#include "defs.h"
-
-extern short _app;
-
-int
-main(int argc, char *argv[])
-{
- if(DoAesInit())
- return(0);
-
- if(DoInitSystem())
- return(0);
-
- LoadConfig(); /* Konfiguration laden */
-
- Init(); /* restliche Initialisierung */
-
- if(!_app) /* Als ACC gestartet? */
- menu_register(ap_id," " PROGRAM_NAME); /* ...im Menu anmelden */
-
- if(argc <= 1) /* Keine Parameter bergeben? */
- {
- if(_app) /* Als Programm gestartet? */
- {
- if (*default_file) /* Default-Hypertext angegeben? */
- OpenFileNW(default_file,NULL,0);
- else
- SelectFileLoad(); /* Datei per Fileselector erfragen */
- }
- }
- else /* Falls Parameter angegeben... */
- {
- /* ...diese Datei (inkl. Kapitel) laden */
- OpenFileNW(argv[1], (argc > 2 ? argv[2]:NULL), 0);
- }
-
- while(!_app || (!doneFlag && all_list))
- {
- DoEvent();
- if(quitApp)
- break;
- }
-
- RemoveItems();
-
- Exit();
-
- DoExitSystem();
- return(0);
-}
+/*
+ * $Id: hyp_view.c,v 1.3 2008/04/06 15:47:03 ggs Exp $
+ *
+ * HypView - (c) - 2006 Philipp Donze
+ * 2006 - Philipp Donze & Odd Skancke
+ *
+ * A replacement hypertext viewer
+ *
+ * This file is part of HypView.
+ *
+ * HypView is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * HypView is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HypView; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <gem.h>
+#include "diallib.h"
+#include "defs.h"
+
+extern short _app;
+
+int
+main(int argc, char *argv[])
+{
+ if(DoAesInit())
+ return(0);
+
+ if(DoInitSystem())
+ return(0);
+
+ LoadConfig(); /* Konfiguration laden */
+
+ Init(); /* restliche Initialisierung */
+
+ if(!_app) /* Als ACC gestartet? */
+ menu_register(ap_id," " PROGRAM_NAME); /* ...im Menu anmelden */
+
+ if(argc <= 1) /* Keine Parameter bergeben? */
+ {
+ if(_app) /* Als Programm gestartet? */
+ {
+ if (*default_file) /* Default-Hypertext angegeben? */
+ OpenFileNW(default_file,NULL,0);
+ else
+ SelectFileLoad(); /* Datei per Fileselector erfragen */
+ }
+ }
+ else /* Falls Parameter angegeben... */
+ {
+ /* ...diese Datei (inkl. Kapitel) laden */
+ OpenFileNW(argv[1], (argc > 2 ? argv[2]:NULL), 0);
+ }
+
+ while(!_app || (!doneFlag && all_list))
+ {
+ DoEvent();
+ if(quitApp)
+ break;
+ }
+
+ RemoveItems();
+
+ Exit();
+
+ DoExitSystem();
+ return(0);
+}
Index: hyp_view.h
===================================================================
RCS file: /mint/freemint/tools/hypview/hyp_view.h,v
retrieving revision 1.2
diff -u -r1.2 hyp_view.h
--- hyp_view.h 18 Apr 2008 20:42:48 -0000 1.2
+++ hyp_view.h 31 Aug 2009 09:34:20 -0000
@@ -1,105 +1,105 @@
- /* Resource C-Header-File v1.95 f?r ResourceMaster ab v2.06 by ARDISOFT */
-
-#define DIAL_LIBRARY 0 /* form/dial */
-#define DI_ICON 1 /* CICON in tree DIAL_LIBRARY */
-#define DI_ICONIFY_NAME 2 /* STRING in tree DIAL_LIBRARY */
-#define DI_MEMORY_ERROR 3 /* STRING in tree DIAL_LIBRARY */
-#define DI_WDIALOG_ERROR 4 /* STRING in tree DIAL_LIBRARY */
-#define DI_HELP_ERROR 5 /* STRING in tree DIAL_LIBRARY */
-#define DI_VDI_WKS_ERROR 6 /* STRING in tree DIAL_LIBRARY */
-
-#define TOOLBAR 1 /* form/dial */
-#define TO_BACKGRND 0 /* BOX in tree TOOLBAR */
-#define TO_ID 15 /* STRING in tree TOOLBAR */
-#define TO_SEARCHBOX 16 /* BOX in tree TOOLBAR */
-#define TO_SEARCH 17 /* FTEXT in tree TOOLBAR */
-#define TO_STRNOTFOUND 18 /* TEXT in tree TOOLBAR */
-#define TO_BUTTONBOX 19 /* IBOX in tree TOOLBAR */
-#define TO_MENU 14 /* CICON in tree TOOLBAR */
-#define TO_SAVE 13 /* CICON in tree TOOLBAR */
-#define TO_LOAD 12 /* CICON in tree TOOLBAR */
-#define TO_INFO 11 /* CICON in tree TOOLBAR */
-#define TO_HELP 10 /* CICON in tree TOOLBAR */
-#define TO_REFERENCES 9 /* CICON in tree TOOLBAR */
-#define TO_KATALOG 8 /* CICON in tree TOOLBAR */
-#define TO_INDEX 7 /* CICON in tree TOOLBAR */
-#define TO_NEXT 6 /* CICON in tree TOOLBAR */
-#define TO_HOME 5 /* CICON in tree TOOLBAR */
-#define TO_PREVIOUS 4 /* CICON in tree TOOLBAR */
-#define TO_MEMORY 3 /* CICON in tree TOOLBAR */
-#define TO_MOREBACK 2 /* CICON in tree TOOLBAR */
-#define TO_BACK 1 /* CICON in tree TOOLBAR */
-
-#define CONTEXT 2 /* form/dial */
-#define CO_BACK 1 /* STRING in tree CONTEXT */
-#define CO_COPY 2 /* STRING in tree CONTEXT */
-#define CO_PASTE 3 /* STRING in tree CONTEXT */
-#define CO_SELECT_ALL 5 /* STRING in tree CONTEXT */
-#define CO_SAVE 7 /* STRING in tree CONTEXT */
-#define CO_PRINT 8 /* STRING in tree CONTEXT */
-#define CO_DELETE_STACK 9 /* STRING in tree CONTEXT */
-
-#define EMPTYPOPUP 3 /* form/dial */
-#define EM_BACK 0 /* BOX in tree EMPTYPOPUP */
-#define EM_1 1 /* STRING in tree EMPTYPOPUP */
-#define EM_2 2 /* STRING in tree EMPTYPOPUP */
-#define EM_3 3 /* STRING in tree EMPTYPOPUP */
-#define EM_4 4 /* STRING in tree EMPTYPOPUP */
-#define EM_5 5 /* STRING in tree EMPTYPOPUP */
-#define EM_6 6 /* STRING in tree EMPTYPOPUP */
-#define EM_7 7 /* STRING in tree EMPTYPOPUP */
-#define EM_8 8 /* STRING in tree EMPTYPOPUP */
-#define EM_9 9 /* STRING in tree EMPTYPOPUP */
-#define EM_10 10 /* STRING in tree EMPTYPOPUP */
-#define EM_11 11 /* STRING in tree EMPTYPOPUP */
-#define EM_12 12 /* STRING in tree EMPTYPOPUP */
-
-#define PROGINFO 4 /* form/dial */
-#define PROG_OK 5 /* BUTTON in tree PROGINFO */
-#define PROG_NAME 6 /* STRING in tree PROGINFO */
-#define PROG_DATEI 7 /* STRING in tree PROGINFO */
-#define PROG_THEMA 8 /* STRING in tree PROGINFO */
-#define PROG_AUTOR 9 /* STRING in tree PROGINFO */
-#define PROG_VERSION 10 /* STRING in tree PROGINFO */
-#define PROG_DATE 11 /* STRING in tree PROGINFO */
-
-#define SEARCH_RESULT 5 /* form/dial */
-#define SR_FSTL_UP 1 /* BOXCHAR in tree SEARCH_RESULT */
-#define SR_FSTL_BACK 2 /* BOX in tree SEARCH_RESULT */
-#define SR_FSTL_WHITE 3 /* BOX in tree SEARCH_RESULT */
-#define SR_FSTL_DOWN 4 /* BOXCHAR in tree SEARCH_RESULT */
-#define SR_BOX 5 /* IBOX in tree SEARCH_RESULT */
-#define SR_FSTL_0 6 /* TEXT in tree SEARCH_RESULT */
-#define SR_FSTL_1 7 /* TEXT in tree SEARCH_RESULT */
-#define SR_FSTL_2 8 /* TEXT in tree SEARCH_RESULT */
-#define SR_FSTL_3 9 /* TEXT in tree SEARCH_RESULT */
-#define SR_FSTL_4 10 /* TEXT in tree SEARCH_RESULT */
-#define SR_FSTL_5 11 /* TEXT in tree SEARCH_RESULT */
-#define SR_FSTL_6 12 /* TEXT in tree SEARCH_RESULT */
-#define SR_FSTL_7 13 /* TEXT in tree SEARCH_RESULT */
-#define SR_FSTL_8 14 /* TEXT in tree SEARCH_RESULT */
-#define SR_FSTL_9 15 /* TEXT in tree SEARCH_RESULT */
-#define SR_ABORT 16 /* BUTTON in tree SEARCH_RESULT */
-
-#define HYPFIND 6 /* form/dial */
-#define HYPFIND_STRING 2 /* FTEXT in tree HYPFIND */
-#define HYPFIND_TEXT 3 /* BUTTON in tree HYPFIND */
-#define HYPFIND_PAGES 4 /* BUTTON in tree HYPFIND */
-#define HYPFIND_REF 5 /* BUTTON in tree HYPFIND */
-#define HYPFIND_ABORT 6 /* BUTTON in tree HYPFIND */
-#define HYPFIND_ALL_PAGE 7 /* BUTTON in tree HYPFIND */
-#define HYPFIND_ALL_HYP 8 /* BUTTON in tree HYPFIND */
-
-#define WARN_FEXIST 0 /* Alert string */
-
-#define WARN_ERASEMARK 1 /* Alert string */
-
-#define ASK_SETMARK 2 /* Alert string */
-
-#define ASK_SAVEMARKFILE 3 /* Alert string */
-
-#define WARN_NORESULT 4 /* Alert string */
-
-#define FSLX_LOAD 5 /* Free string */
-
-#define FSLX_SAVE 6 /* Free string */
+ /* Resource C-Header-File v1.95 f?r ResourceMaster ab v2.06 by ARDISOFT */
+
+#define DIAL_LIBRARY 0 /* form/dial */
+#define DI_ICON 1 /* CICON in tree DIAL_LIBRARY */
+#define DI_ICONIFY_NAME 2 /* STRING in tree DIAL_LIBRARY */
+#define DI_MEMORY_ERROR 3 /* STRING in tree DIAL_LIBRARY */
+#define DI_WDIALOG_ERROR 4 /* STRING in tree DIAL_LIBRARY */
+#define DI_HELP_ERROR 5 /* STRING in tree DIAL_LIBRARY */
+#define DI_VDI_WKS_ERROR 6 /* STRING in tree DIAL_LIBRARY */
+
+#define TOOLBAR 1 /* form/dial */
+#define TO_BACKGRND 0 /* BOX in tree TOOLBAR */
+#define TO_ID 15 /* STRING in tree TOOLBAR */
+#define TO_SEARCHBOX 16 /* BOX in tree TOOLBAR */
+#define TO_SEARCH 17 /* FTEXT in tree TOOLBAR */
+#define TO_STRNOTFOUND 18 /* TEXT in tree TOOLBAR */
+#define TO_BUTTONBOX 19 /* IBOX in tree TOOLBAR */
+#define TO_MENU 14 /* CICON in tree TOOLBAR */
+#define TO_SAVE 13 /* CICON in tree TOOLBAR */
+#define TO_LOAD 12 /* CICON in tree TOOLBAR */
+#define TO_INFO 11 /* CICON in tree TOOLBAR */
+#define TO_HELP 10 /* CICON in tree TOOLBAR */
+#define TO_REFERENCES 9 /* CICON in tree TOOLBAR */
+#define TO_KATALOG 8 /* CICON in tree TOOLBAR */
+#define TO_INDEX 7 /* CICON in tree TOOLBAR */
+#define TO_NEXT 6 /* CICON in tree TOOLBAR */
+#define TO_HOME 5 /* CICON in tree TOOLBAR */
+#define TO_PREVIOUS 4 /* CICON in tree TOOLBAR */
+#define TO_MEMORY 3 /* CICON in tree TOOLBAR */
+#define TO_MOREBACK 2 /* CICON in tree TOOLBAR */
+#define TO_BACK 1 /* CICON in tree TOOLBAR */
+
+#define CONTEXT 2 /* form/dial */
+#define CO_BACK 1 /* STRING in tree CONTEXT */
+#define CO_COPY 2 /* STRING in tree CONTEXT */
+#define CO_PASTE 3 /* STRING in tree CONTEXT */
+#define CO_SELECT_ALL 5 /* STRING in tree CONTEXT */
+#define CO_SAVE 7 /* STRING in tree CONTEXT */
+#define CO_PRINT 8 /* STRING in tree CONTEXT */
+#define CO_DELETE_STACK 9 /* STRING in tree CONTEXT */
+
+#define EMPTYPOPUP 3 /* form/dial */
+#define EM_BACK 0 /* BOX in tree EMPTYPOPUP */
+#define EM_1 1 /* STRING in tree EMPTYPOPUP */
+#define EM_2 2 /* STRING in tree EMPTYPOPUP */
+#define EM_3 3 /* STRING in tree EMPTYPOPUP */
+#define EM_4 4 /* STRING in tree EMPTYPOPUP */
+#define EM_5 5 /* STRING in tree EMPTYPOPUP */
+#define EM_6 6 /* STRING in tree EMPTYPOPUP */
+#define EM_7 7 /* STRING in tree EMPTYPOPUP */
+#define EM_8 8 /* STRING in tree EMPTYPOPUP */
+#define EM_9 9 /* STRING in tree EMPTYPOPUP */
+#define EM_10 10 /* STRING in tree EMPTYPOPUP */
+#define EM_11 11 /* STRING in tree EMPTYPOPUP */
+#define EM_12 12 /* STRING in tree EMPTYPOPUP */
+
+#define PROGINFO 4 /* form/dial */
+#define PROG_OK 5 /* BUTTON in tree PROGINFO */
+#define PROG_NAME 6 /* STRING in tree PROGINFO */
+#define PROG_DATEI 7 /* STRING in tree PROGINFO */
+#define PROG_THEMA 8 /* STRING in tree PROGINFO */
+#define PROG_AUTOR 9 /* STRING in tree PROGINFO */
+#define PROG_VERSION 10 /* STRING in tree PROGINFO */
+#define PROG_DATE 11 /* STRING in tree PROGINFO */
+
+#define SEARCH_RESULT 5 /* form/dial */
+#define SR_FSTL_UP 1 /* BOXCHAR in tree SEARCH_RESULT */
+#define SR_FSTL_BACK 2 /* BOX in tree SEARCH_RESULT */
+#define SR_FSTL_WHITE 3 /* BOX in tree SEARCH_RESULT */
+#define SR_FSTL_DOWN 4 /* BOXCHAR in tree SEARCH_RESULT */
+#define SR_BOX 5 /* IBOX in tree SEARCH_RESULT */
+#define SR_FSTL_0 6 /* TEXT in tree SEARCH_RESULT */
+#define SR_FSTL_1 7 /* TEXT in tree SEARCH_RESULT */
+#define SR_FSTL_2 8 /* TEXT in tree SEARCH_RESULT */
+#define SR_FSTL_3 9 /* TEXT in tree SEARCH_RESULT */
+#define SR_FSTL_4 10 /* TEXT in tree SEARCH_RESULT */
+#define SR_FSTL_5 11 /* TEXT in tree SEARCH_RESULT */
+#define SR_FSTL_6 12 /* TEXT in tree SEARCH_RESULT */
+#define SR_FSTL_7 13 /* TEXT in tree SEARCH_RESULT */
+#define SR_FSTL_8 14 /* TEXT in tree SEARCH_RESULT */
+#define SR_FSTL_9 15 /* TEXT in tree SEARCH_RESULT */
+#define SR_ABORT 16 /* BUTTON in tree SEARCH_RESULT */
+
+#define HYPFIND 6 /* form/dial */
+#define HYPFIND_STRING 2 /* FTEXT in tree HYPFIND */
+#define HYPFIND_TEXT 3 /* BUTTON in tree HYPFIND */
+#define HYPFIND_PAGES 4 /* BUTTON in tree HYPFIND */
+#define HYPFIND_REF 5 /* BUTTON in tree HYPFIND */
+#define HYPFIND_ABORT 6 /* BUTTON in tree HYPFIND */
+#define HYPFIND_ALL_PAGE 7 /* BUTTON in tree HYPFIND */
+#define HYPFIND_ALL_HYP 8 /* BUTTON in tree HYPFIND */
+
+#define WARN_FEXIST 0 /* Alert string */
+
+#define WARN_ERASEMARK 1 /* Alert string */
+
+#define ASK_SETMARK 2 /* Alert string */
+
+#define ASK_SAVEMARKFILE 3 /* Alert string */
+
+#define WARN_NORESULT 4 /* Alert string */
+
+#define FSLX_LOAD 5 /* Free string */
+
+#define FSLX_SAVE 6 /* Free string */
Index: bubble/bgh.c
===================================================================
RCS file: /mint/freemint/tools/hypview/bubble/bgh.c,v
retrieving revision 1.3
diff -u -r1.3 bgh.c
--- bubble/bgh.c 6 Apr 2008 15:47:03 -0000 1.3
+++ bubble/bgh.c 31 Aug 2009 09:34:20 -0000
@@ -1,373 +1,373 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef __GNUC__
- #include <osbind.h>
- #include <fcntl.h>
-
- /* Mxalloc mode: global memory */
- #define MX_GLOBAL (2<<4)
-#else
- #include <tos.h>
-#endif
-#include <gem.h>
-#include "bubble.h"
-#include "bgh.h"
-
-#define BGH_MAGIC 0x23424748L
-
-#define IS_SPACE(a) ((a==' ') || (a=='\t'))
-#define IS_EOL(a) ((a==10) || (a==13))
-#define IS_NUMBER(a) ((a>='0') && (a<='9'))
-
-#ifndef TRUE
- #define TRUE 1
- #define FALSE 0
-#endif
-
-struct bgh_group;
-struct bgh_object;
-
-typedef struct
-{
- struct bgh_group *section[4];
-}BGH_head;
-
-typedef struct bgh_group
-{
- int index;
- struct bgh_group *next;
- struct bgh_object *first;
- char *help_string;
-}BGH_group;
-
-typedef struct bgh_object
-{
- int index;
- struct bgh_object *next;
- char *help_string;
-}BGH_object;
-
-
-char *Goto_Lineend(char *ptr);
-char *Skip_Lineend(char *ptr);
-char *Skip_Spaces(char *ptr);
-char *Skip_Number(char *ptr);
-void Debug(char *str,...);
-
-
-
-void *BGH_load(const char *Name)
-{
-long ret,len;
-int handle,not_good=FALSE,i,sect=0;
-BGH_head *head;
-BGH_group *group=NULL,*new_group;
-BGH_object *obj=NULL,*new_obj;
-char *read,*write=NULL;
- ret=Fopen(Name,O_RDONLY);
- if(ret<0)
- return NULL;
-
- handle=(int)ret;
- len=Fseek(0,handle,2);
- Fseek(0,handle,0);
-
- if(len<sizeof(BGH_head))
- return NULL;
-
- head=(BGH_head *)Mxalloc(2*len+2, MX_GLOBAL);
- if(head)
- {
- /* 68000er Bug (keine WORD/LONG Zugriffe auf ungerade Adressen) */
- read=(char *)(((long)head+len+1)&0xfffffffeL);
-
- if(Fread(handle,len,read)==len)
- {
- if(*(long *)read==BGH_MAGIC)
- {
- read[len]=0;
- write=(char *)head+sizeof(BGH_head);
- for(i=0;i<4;i++)
- head->section[i]=NULL;
-
- while(*read)
- {
- read=Goto_Lineend(read); /* Zeilenende suchen */
- read=Skip_Lineend(read); /* zur naechsten Zeile gehen */
-
- if(*read)
- {
- if(*read=='#')
- {
- read++;
- read=Skip_Spaces(read);
-
- if(IS_NUMBER(*read)) /* Objekt gefunden */
- {
- if(group)
- {
- new_obj=(BGH_object *)write;
- write+=sizeof(BGH_object);
-
- new_obj->next=NULL;
- new_obj->help_string=NULL;
- new_obj->index=atoi(read);
-
- read=Skip_Number(read);
- read=Skip_Spaces(read);
-
- if(obj && *read=='^')
- /* Referenz zum vorherigen Objekt ? */
- {
- new_obj->help_string=obj->help_string;
- }
- else if(head->section[3] && *read=='>')
- /* Referenz zum Objekt mit folgender Nummer */
- {
- BGH_group *ref_group=head->section[3];
- while(ref_group && ref_group->index!=0)
- ref_group=ref_group->next;
-
- if(ref_group)
- {
- BGH_object *ref_obj=ref_group->first;
- read++;
- i=atoi(read);
- read=Skip_Number(read);
- while(ref_obj && ref_obj->index!=i)
- ref_obj=ref_obj->next;
-
- if(ref_obj)
- new_obj->help_string=ref_obj->help_string;
- }
- }
- else if(!IS_EOL(*read))
- /* Normaler Hilfe-String folgt */
- {
- new_obj->help_string=write;
- while(*read && !IS_EOL(*read))
- *write++=*read++;
- *write++=0;
-
- /* 68000er Bug (keine WORD/LONG Zugriffe
- auf ungerade Adressen) */
- if((long)write & 1)
- write++;
- }
-
- if(group->first)
- {
- obj=group->first;
- while(obj->next)
- obj=obj->next;
- obj->next=new_obj;
- }
- else
- group->first=new_obj;
- obj=new_obj;
- }
- }
- else
- {
- const char *ptr = "N/A";
- i=0;
- switch(*read)
- {
- case 'd':
- case 'D':
- i=4;
- ptr="dial";
- sect=0;
- break;
- case 'a':
- case 'A':
- i=5;
- ptr="alert";
- sect=1;
- break;
- case 'u':
- case 'U':
- i=4;
- ptr="user";
- sect=2;
- break;
- case 'm':
- case 'M':
- i=4;
- ptr="more";
- sect=3;
- break;
- }
- /* Gruppe gefunden ?? */
- if(i && !strnicmp(read,ptr,i))
- {
- read+=i;
- read=Skip_Spaces(read);
-
- new_group=(BGH_group *)write;
- write+=sizeof(BGH_group);
-
- new_group->next=NULL;
- new_group->first=NULL;
- new_group->index=atoi(read);
- read=Skip_Number(read);
- if(IS_SPACE(*read))
- {
- read=Skip_Spaces(read);
- new_group->help_string=write;
- while(*read && !IS_EOL(*read))
- *write++=*read++;
- *write++=0;
-
- /* 68000er Bug (keine WORD/LONG Zugriffe
- auf ungerade Adressen) */
- if((long)write & 1)
- write++;
- }
- else
- new_group->help_string=NULL;
-
- if(head->section[sect])
- {
- group=head->section[sect];
- while(group->next)
- group=group->next;
- group->next=new_group;
- }
- else
- head->section[sect]=new_group;
- group=new_group;
- obj=NULL;
- }
- }
- }
- }
- }
- }
- else
- not_good=TRUE;
-
- }
- else
- not_good=TRUE;
-
- if(not_good)
- {
- Mfree(head);
- head=NULL;
- }
- }
- Fclose(handle);
-
- Mshrink(head,(unsigned long)write-(unsigned long)head);
- return head;
-}
-
-void BGH_free(void *bgh_handle)
-{
- Mfree(bgh_handle);
-}
-
-char *BGH_gethelpstring(void *bgh_handle, int typ, int gruppe, int idx)
-{
-BGH_head *head=bgh_handle;
-BGH_group *group;
-char *help_string=NULL;
- if(typ<0 || typ>3)
- return NULL;
-
- group=head->section[typ];
- while(group && group->index!=gruppe)
- group=group->next;
- if(group)
- {
- BGH_object *obj=group->first;
- if(idx==-1)
- {
- help_string=group->help_string;
- }
- else
- {
- while(obj && obj->index!=idx)
- obj=obj->next;
- if(obj)
- help_string=obj->help_string;
- }
- }
- return help_string;
-}
-
-void BGH_action(void *bgh_handle, int mx, int my, int typ, int gruppe, int idx)
-{
-extern int ap_id;
-int bubble_id;
-int msg[8];
-char *help_string;
-char *path=NULL;
-
- help_string=BGH_gethelpstring(bgh_handle, typ, gruppe, idx);
-
- if(help_string)
- {
- bubble_id=appl_find("BUBBLE ");
- if(bubble_id<0)
- {
- shel_envrn(&path,"BUBBLEGEM=");
- if(path)
- {
- bubble_id=shel_write(SHW_EXEC,1,SHW_PARALLEL,path,NULL);
- evnt_timer(500);
- }
- }
-
- if(bubble_id >= 0)
- {
- msg[0]=BUBBLEGEM_SHOW;
- msg[1]=ap_id;
- msg[2]=0;
- msg[3]=mx;
- msg[4]=my;
- msg[5]=(int)(((long)help_string >> 16) & 0x0000ffff);
- msg[6]=(int)((long)help_string & 0x0000ffff);
- msg[7]=0;
- if(appl_write(bubble_id, 16, msg) == 0)
- {
- /* Fehler */
- }
- }
- }
-}
-
-
-
-
-
-
-char *Goto_Lineend(char *ptr)
-{
- while(*ptr && !IS_EOL(*ptr))
- ptr++;
- return ptr;
-}
-
-char *Skip_Lineend(char *ptr)
-{
- while(*ptr && IS_EOL(*ptr))
- ptr++;
- return ptr;
-}
-
-char *Skip_Spaces(char *ptr)
-{
- while(*ptr && IS_SPACE(*ptr))
- ptr++;
- return ptr;
-}
-
-char *Skip_Number(char *ptr)
-{
- while(*ptr && IS_NUMBER(*ptr))
- ptr++;
- return ptr;
-}
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef __GNUC__
+ #include <osbind.h>
+ #include <fcntl.h>
+
+ /* Mxalloc mode: global memory */
+ #define MX_GLOBAL (2<<4)
+#else
+ #include <tos.h>
+#endif
+#include <gem.h>
+#include "bubble.h"
+#include "bgh.h"
+
+#define BGH_MAGIC 0x23424748L
+
+#define IS_SPACE(a) ((a==' ') || (a=='\t'))
+#define IS_EOL(a) ((a==10) || (a==13))
+#define IS_NUMBER(a) ((a>='0') && (a<='9'))
+
+#ifndef TRUE
+ #define TRUE 1
+ #define FALSE 0
+#endif
+
+struct bgh_group;
+struct bgh_object;
+
+typedef struct
+{
+ struct bgh_group *section[4];
+}BGH_head;
+
+typedef struct bgh_group
+{
+ int index;
+ struct bgh_group *next;
+ struct bgh_object *first;
+ char *help_string;
+}BGH_group;
+
+typedef struct bgh_object
+{
+ int index;
+ struct bgh_object *next;
+ char *help_string;
+}BGH_object;
+
+
+char *Goto_Lineend(char *ptr);
+char *Skip_Lineend(char *ptr);
+char *Skip_Spaces(char *ptr);
+char *Skip_Number(char *ptr);
+void Debug(char *str,...);
+
+
+
+void *BGH_load(const char *Name)
+{
+long ret,len;
+int handle,not_good=FALSE,i,sect=0;
+BGH_head *head;
+BGH_group *group=NULL,*new_group;
+BGH_object *obj=NULL,*new_obj;
+char *read,*write=NULL;
+ ret=Fopen(Name,O_RDONLY);
+ if(ret<0)
+ return NULL;
+
+ handle=(int)ret;
+ len=Fseek(0,handle,2);
+ Fseek(0,handle,0);
+
+ if(len<sizeof(BGH_head))
+ return NULL;
+
+ head=(BGH_head *)Mxalloc(2*len+2, MX_GLOBAL);
+ if(head)
+ {
+ /* 68000er Bug (keine WORD/LONG Zugriffe auf ungerade Adressen) */
+ read=(char *)(((long)head+len+1)&0xfffffffeL);
+
+ if(Fread(handle,len,read)==len)
+ {
+ if(*(long *)read==BGH_MAGIC)
+ {
+ read[len]=0;
+ write=(char *)head+sizeof(BGH_head);
+ for(i=0;i<4;i++)
+ head->section[i]=NULL;
+
+ while(*read)
+ {
+ read=Goto_Lineend(read); /* Zeilenende suchen */
+ read=Skip_Lineend(read); /* zur naechsten Zeile gehen */
+
+ if(*read)
+ {
+ if(*read=='#')
+ {
+ read++;
+ read=Skip_Spaces(read);
+
+ if(IS_NUMBER(*read)) /* Objekt gefunden */
+ {
+ if(group)
+ {
+ new_obj=(BGH_object *)write;
+ write+=sizeof(BGH_object);
+
+ new_obj->next=NULL;
+ new_obj->help_string=NULL;
+ new_obj->index=atoi(read);
+
+ read=Skip_Number(read);
+ read=Skip_Spaces(read);
+
+ if(obj && *read=='^')
+ /* Referenz zum vorherigen Objekt ? */
+ {
+ new_obj->help_string=obj->help_string;
+ }
+ else if(head->section[3] && *read=='>')
+ /* Referenz zum Objekt mit folgender Nummer */
+ {
+ BGH_group *ref_group=head->section[3];
+ while(ref_group && ref_group->index!=0)
+ ref_group=ref_group->next;
+
+ if(ref_group)
+ {
+ BGH_object *ref_obj=ref_group->first;
+ read++;
+ i=atoi(read);
+ read=Skip_Number(read);
+ while(ref_obj && ref_obj->index!=i)
+ ref_obj=ref_obj->next;
+
+ if(ref_obj)
+ new_obj->help_string=ref_obj->help_string;
+ }
+ }
+ else if(!IS_EOL(*read))
+ /* Normaler Hilfe-String folgt */
+ {
+ new_obj->help_string=write;
+ while(*read && !IS_EOL(*read))
+ *write++=*read++;
+ *write++=0;
+
+ /* 68000er Bug (keine WORD/LONG Zugriffe
+ auf ungerade Adressen) */
+ if((long)write & 1)
+ write++;
+ }
+
+ if(group->first)
+ {
+ obj=group->first;
+ while(obj->next)
+ obj=obj->next;
+ obj->next=new_obj;
+ }
+ else
+ group->first=new_obj;
+ obj=new_obj;
+ }
+ }
+ else
+ {
+ const char *ptr = "N/A";
+ i=0;
+ switch(*read)
+ {
+ case 'd':
+ case 'D':
+ i=4;
+ ptr="dial";
+ sect=0;
+ break;
+ case 'a':
+ case 'A':
+ i=5;
+ ptr="alert";
+ sect=1;
+ break;
+ case 'u':
+ case 'U':
+ i=4;
+ ptr="user";
+ sect=2;
+ break;
+ case 'm':
+ case 'M':
+ i=4;
+ ptr="more";
+ sect=3;
+ break;
+ }
+ /* Gruppe gefunden ?? */
+ if(i && !strnicmp(read,ptr,i))
+ {
+ read+=i;
+ read=Skip_Spaces(read);
+
+ new_group=(BGH_group *)write;
+ write+=sizeof(BGH_group);
+
+ new_group->next=NULL;
+ new_group->first=NULL;
+ new_group->index=atoi(read);
+ read=Skip_Number(read);
+ if(IS_SPACE(*read))
+ {
+ read=Skip_Spaces(read);
+ new_group->help_string=write;
+ while(*read && !IS_EOL(*read))
+ *write++=*read++;
+ *write++=0;
+
+ /* 68000er Bug (keine WORD/LONG Zugriffe
+ auf ungerade Adressen) */
+ if((long)write & 1)
+ write++;
+ }
+ else
+ new_group->help_string=NULL;
+
+ if(head->section[sect])
+ {
+ group=head->section[sect];
+ while(group->next)
+ group=group->next;
+ group->next=new_group;
+ }
+ else
+ head->section[sect]=new_group;
+ group=new_group;
+ obj=NULL;
+ }
+ }
+ }
+ }
+ }
+ }
+ else
+ not_good=TRUE;
+
+ }
+ else
+ not_good=TRUE;
+
+ if(not_good)
+ {
+ Mfree(head);
+ head=NULL;
+ }
+ }
+ Fclose(handle);
+
+ Mshrink(head,(unsigned long)write-(unsigned long)head);
+ return head;
+}
+
+void BGH_free(void *bgh_handle)
+{
+ Mfree(bgh_handle);
+}
+
+char *BGH_gethelpstring(void *bgh_handle, int typ, int gruppe, int idx)
+{
+BGH_head *head=bgh_handle;
+BGH_group *group;
+char *help_string=NULL;
+ if(typ<0 || typ>3)
+ return NULL;
+
+ group=head->section[typ];
+ while(group && group->index!=gruppe)
+ group=group->next;
+ if(group)
+ {
+ BGH_object *obj=group->first;
+ if(idx==-1)
+ {
+ help_string=group->help_string;
+ }
+ else
+ {
+ while(obj && obj->index!=idx)
+ obj=obj->next;
+ if(obj)
+ help_string=obj->help_string;
+ }
+ }
+ return help_string;
+}
+
+void BGH_action(void *bgh_handle, int mx, int my, int typ, int gruppe, int idx)
+{
+extern int ap_id;
+int bubble_id;
+int msg[8];
+char *help_string;
+char *path=NULL;
+
+ help_string=BGH_gethelpstring(bgh_handle, typ, gruppe, idx);
+
+ if(help_string)
+ {
+ bubble_id=appl_find("BUBBLE ");
+ if(bubble_id<0)
+ {
+ shel_envrn(&path,"BUBBLEGEM=");
+ if(path)
+ {
+ bubble_id=shel_write(SHW_EXEC,1,SHW_PARALLEL,path,NULL);
+ evnt_timer(500);
+ }
+ }
+
+ if(bubble_id >= 0)
+ {
+ msg[0]=BUBBLEGEM_SHOW;
+ msg[1]=ap_id;
+ msg[2]=0;
+ msg[3]=mx;
+ msg[4]=my;
+ msg[5]=(int)(((long)help_string >> 16) & 0x0000ffff);
+ msg[6]=(int)((long)help_string & 0x0000ffff);
+ msg[7]=0;
+ if(appl_write(bubble_id, 16, msg) == 0)
+ {
+ /* Fehler */
+ }
+ }
+ }
+}
+
+
+
+
+
+
+char *Goto_Lineend(char *ptr)
+{
+ while(*ptr && !IS_EOL(*ptr))
+ ptr++;
+ return ptr;
+}
+
+char *Skip_Lineend(char *ptr)
+{
+ while(*ptr && IS_EOL(*ptr))
+ ptr++;
+ return ptr;
+}
+
+char *Skip_Spaces(char *ptr)
+{
+ while(*ptr && IS_SPACE(*ptr))
+ ptr++;
+ return ptr;
+}
+
+char *Skip_Number(char *ptr)
+{
+ while(*ptr && IS_NUMBER(*ptr))
+ ptr++;
+ return ptr;
+}
Index: bubble/bgh.h
===================================================================
RCS file: /mint/freemint/tools/hypview/bubble/bgh.h,v
retrieving revision 1.1
diff -u -r1.1 bgh.h
--- bubble/bgh.h 12 Feb 2006 15:17:59 -0000 1.1
+++ bubble/bgh.h 31 Aug 2009 09:34:20 -0000
@@ -1,14 +1,14 @@
-#ifndef _BGH_H_
-#define _BGH_H_
-
-#define BGH_DIAL 0
-#define BGH_ALERT 1
-#define BGH_USER 2
-#define BGH_MORE 3
-
-void *BGH_load(const char *Name);
-void BGH_free(void *bgh_handle);
-char *BGH_gethelpstring(void *bgh_handle, int typ, int gruppe, int idx);
-void BGH_action(void *bgh_handle, int mx, int my, int typ, int gruppe, int idx);
-
-#endif /* _BGH_H_ */
+#ifndef _BGH_H_
+#define _BGH_H_
+
+#define BGH_DIAL 0
+#define BGH_ALERT 1
+#define BGH_USER 2
+#define BGH_MORE 3
+
+void *BGH_load(const char *Name);
+void BGH_free(void *bgh_handle);
+char *BGH_gethelpstring(void *bgh_handle, int typ, int gruppe, int idx);
+void BGH_action(void *bgh_handle, int mx, int my, int typ, int gruppe, int idx);
+
+#endif /* _BGH_H_ */
Index: bubble/bubble.h
===================================================================
RCS file: /mint/freemint/tools/hypview/bubble/bubble.h,v
retrieving revision 1.2
diff -u -r1.2 bubble.h
--- bubble/bubble.h 6 Apr 2008 15:47:03 -0000 1.2
+++ bubble/bubble.h 31 Aug 2009 09:34:20 -0000
@@ -1,115 +1,115 @@
-/* BUBBLEGEM_REQUEST - Nachricht
- * msg[0] $BABA
- * msg[1] demonID
- * msg[2] 0
- * msg[3] winID
- * msg[4] mX
- * msg[5] mY
- * msg[6] KStat
- * msg[7] 0
- */
-#define BUBBLEGEM_REQUEST 0xBABA
-
-/* BUBBLEGEM_SHOW - Nachricht:
- * msg[0] $BABB
- * msg[1] ap_id
- * msg[2] 0
- * msg[3] Maus X
- * msg[4] Maus Y
- * msg[5/6] Pointer auf nullterminierte Zeichenkette im globalen
- * Speicher
- * msg[7] Special-Word (=Bitfield)
- */
-#define BUBBLEGEM_SHOW 0xBABB
-
-
-/* BUBBLEGEM_ACK ($BABC)
- *
- * msg[0] $BABC
- * msg[1] ap_id
- * msg[2] 0
- * msg[3] 0
- * msg[4] 0
- * msg[5/6] Pointer aus BUBBLEGEM_SHOW
- * msg[7] 0
- */
-#define BUBBLEGEM_ACK 0xBABC
-
-
-/* BUBBLEGEM_ASKFONT ($BABD)
- * msg[0] = $BABD;
- * msg[1] = apID;
- * msg[2] = 0;
- * msg[3] = 0;
- * msg[4] = 0;
- * msg[5] = 0;
- * msg[6] = 0;
- * msg[7] = 0;
- */
-#define BUBBLEGEM_ASKFONT 0xbabd;
-
-/* BUBBLEGEM_FONT ($BABE)
- * msg[0] = $BABE;
- * msg[1] = apID;
- * msg[2] = 0;
- * msg[3] = FontID;
- * msg[4] = FontPt;
- * msg[5] = 0;
- * msg[6] = 0;
- * msg[7] = 0;
- */
-#define BUBBLEGEM_FONT 0xbabe;
-
-
-/* BUBBLEGEM_HIDE ($BABF)
- * msg[0] = $BABF;
- * msg[1] = apID;
- * msg[2] = 0;
- * msg[3] = ?;
- * msg[4] = ?;
- * msg[5] = ?;
- * msg[6] = ?;
- * msg[7] = ?;
- */
-#define BUBBLEGEM_HIDE 0xBABF;
-
-
-/*
- * Daten fuer das Special-Word von BUBBLEGEM_SHOW
- */
-#define BGS7_USRHIDE 0x0001 /* fuer modalen Aufruf noetig */
-#define BGS7_MOUSE 0x0004 /* BubbleGEM benutzt die Koordinaten nur
- zum Zeichnen */
-
-
-/*
- * BGEM Cookie
- */
-typedef struct
-{
- long magic; /* 'BGEM' */
- long size; /* Groesse dieser Struktur, derzeit 18 */
- int release; /* derzeit 6, nie kleiner als 5 */
- int active; /* <>0, wenn gerade eine Hilfe angezeigt wird;
- 0 sonst */
- MFORM *mhelp; /* Zeiger auf Hilfe-Mausform */
- int dtimer; /* Daemon-Timer; Default 200ms; ab Release 6 */
-}BGEM;
-
-
-/* BHLP-Cookie:
- * BubbleGEM wertet den Cookie "BHLP" aus. Im oberen Word ist die Dauer
- * der Mindest-Sichtbarkeit eingetragen, Standard sind 200 Millisekunden.
- * Das untere Word ist eine Bitmap; ist Bit 0 ($0001 = BGC_FONTCHANGED)
- * gesetzt, so bedeutet dies, dass FONT_CHANGED ausgewertet wird. Ist
- * BGC_NOWINSTYLE ($0002) (lies: no-win-style, nicht now-in-style)
- * gesetzt, so wird die Hilfe als Sprechblase dargestellt (d.h. ein
- * geloeschtes Bit entspricht der Windows-Hilfe!). Ein gesetztes Bit bei
- * BGC_SENDKEY ($0004) bewirkt, dass nach Schliessen der Hilfe durch einen
- * Tastendruck AV_SENDKEY an den Aufrufer geschickt wird. BGC_DEMONACTIVE
- * ($0008) bewirkt, dass Daemon eingeschaltet ist.
- */
-#define BGC_FONTCHANGED 0x0001
-#define BGC_NOWINSTYLE 0x0002
-#define BGC_SENDKEY 0x0004
-#define BGC_DEMONACTIVE 0x0004
+/* BUBBLEGEM_REQUEST - Nachricht
+ * msg[0] $BABA
+ * msg[1] demonID
+ * msg[2] 0
+ * msg[3] winID
+ * msg[4] mX
+ * msg[5] mY
+ * msg[6] KStat
+ * msg[7] 0
+ */
+#define BUBBLEGEM_REQUEST 0xBABA
+
+/* BUBBLEGEM_SHOW - Nachricht:
+ * msg[0] $BABB
+ * msg[1] ap_id
+ * msg[2] 0
+ * msg[3] Maus X
+ * msg[4] Maus Y
+ * msg[5/6] Pointer auf nullterminierte Zeichenkette im globalen
+ * Speicher
+ * msg[7] Special-Word (=Bitfield)
+ */
+#define BUBBLEGEM_SHOW 0xBABB
+
+
+/* BUBBLEGEM_ACK ($BABC)
+ *
+ * msg[0] $BABC
+ * msg[1] ap_id
+ * msg[2] 0
+ * msg[3] 0
+ * msg[4] 0
+ * msg[5/6] Pointer aus BUBBLEGEM_SHOW
+ * msg[7] 0
+ */
+#define BUBBLEGEM_ACK 0xBABC
+
+
+/* BUBBLEGEM_ASKFONT ($BABD)
+ * msg[0] = $BABD;
+ * msg[1] = apID;
+ * msg[2] = 0;
+ * msg[3] = 0;
+ * msg[4] = 0;
+ * msg[5] = 0;
+ * msg[6] = 0;
+ * msg[7] = 0;
+ */
+#define BUBBLEGEM_ASKFONT 0xbabd;
+
+/* BUBBLEGEM_FONT ($BABE)
+ * msg[0] = $BABE;
+ * msg[1] = apID;
+ * msg[2] = 0;
+ * msg[3] = FontID;
+ * msg[4] = FontPt;
+ * msg[5] = 0;
+ * msg[6] = 0;
+ * msg[7] = 0;
+ */
+#define BUBBLEGEM_FONT 0xbabe;
+
+
+/* BUBBLEGEM_HIDE ($BABF)
+ * msg[0] = $BABF;
+ * msg[1] = apID;
+ * msg[2] = 0;
+ * msg[3] = ?;
+ * msg[4] = ?;
+ * msg[5] = ?;
+ * msg[6] = ?;
+ * msg[7] = ?;
+ */
+#define BUBBLEGEM_HIDE 0xBABF;
+
+
+/*
+ * Daten fuer das Special-Word von BUBBLEGEM_SHOW
+ */
+#define BGS7_USRHIDE 0x0001 /* fuer modalen Aufruf noetig */
+#define BGS7_MOUSE 0x0004 /* BubbleGEM benutzt die Koordinaten nur
+ zum Zeichnen */
+
+
+/*
+ * BGEM Cookie
+ */
+typedef struct
+{
+ long magic; /* 'BGEM' */
+ long size; /* Groesse dieser Struktur, derzeit 18 */
+ int release; /* derzeit 6, nie kleiner als 5 */
+ int active; /* <>0, wenn gerade eine Hilfe angezeigt wird;
+ 0 sonst */
+ MFORM *mhelp; /* Zeiger auf Hilfe-Mausform */
+ int dtimer; /* Daemon-Timer; Default 200ms; ab Release 6 */
+}BGEM;
+
+
+/* BHLP-Cookie:
+ * BubbleGEM wertet den Cookie "BHLP" aus. Im oberen Word ist die Dauer
+ * der Mindest-Sichtbarkeit eingetragen, Standard sind 200 Millisekunden.
+ * Das untere Word ist eine Bitmap; ist Bit 0 ($0001 = BGC_FONTCHANGED)
+ * gesetzt, so bedeutet dies, dass FONT_CHANGED ausgewertet wird. Ist
+ * BGC_NOWINSTYLE ($0002) (lies: no-win-style, nicht now-in-style)
+ * gesetzt, so wird die Hilfe als Sprechblase dargestellt (d.h. ein
+ * geloeschtes Bit entspricht der Windows-Hilfe!). Ein gesetztes Bit bei
+ * BGC_SENDKEY ($0004) bewirkt, dass nach Schliessen der Hilfe durch einen
+ * Tastendruck AV_SENDKEY an den Aufrufer geschickt wird. BGC_DEMONACTIVE
+ * ($0008) bewirkt, dass Daemon eingeschaltet ist.
+ */
+#define BGC_FONTCHANGED 0x0001
+#define BGC_NOWINSTYLE 0x0002
+#define BGC_SENDKEY 0x0004
+#define BGC_DEMONACTIVE 0x0004
Index: bubble/history.txt
===================================================================
RCS file: /mint/freemint/tools/hypview/bubble/history.txt,v
retrieving revision 1.2
diff -u -r1.2 history.txt
--- bubble/history.txt 6 Apr 2008 15:47:03 -0000 1.2
+++ bubble/history.txt 31 Aug 2009 09:34:20 -0000
@@ -1,24 +1,24 @@
-BGH-Lade Routinen
------------------
-22.07.2001
- Erste selbst geschriebene Laderoutinen fuer BGH-Hilfedateien (=BubbleGEM
- Hilfedateien). (hoffentlich) Kompatibel zur BGH Definition von Armin
- Diedering (v1.1). Keine Unterstuetzung der Cookie-Schnittstelle oder
- Shared-Libraries! Kein Binaerformat.
- Warum? Weil ich das fuer Humbug halte!
- Unterstuetzt Referenzen:
- "^" zeigt auf den Hilfetext des vorherigen Objekts
- ">" gefolgt von einer Nummer zeigt auf das Objekt mit dieser Nummer,
- welches sich in der MORE Sektion befindet!
-13.11.2001
- Bugfix: Beim Laden der BGH Datei wurde nicht darauf geachtet, ob der
- allozierte Speicher auf einer geraden oder ungeraden Adresse zu liegen
- kam. --> Absturz auf 68000ern.
-
-
-
-Philipp Donze
-Rue de Sadaz 5
-1373 Chavornay
-Schweiz
-
+BGH-Lade Routinen
+-----------------
+22.07.2001
+ Erste selbst geschriebene Laderoutinen fuer BGH-Hilfedateien (=BubbleGEM
+ Hilfedateien). (hoffentlich) Kompatibel zur BGH Definition von Armin
+ Diedering (v1.1). Keine Unterstuetzung der Cookie-Schnittstelle oder
+ Shared-Libraries! Kein Binaerformat.
+ Warum? Weil ich das fuer Humbug halte!
+ Unterstuetzt Referenzen:
+ "^" zeigt auf den Hilfetext des vorherigen Objekts
+ ">" gefolgt von einer Nummer zeigt auf das Objekt mit dieser Nummer,
+ welches sich in der MORE Sektion befindet!
+13.11.2001
+ Bugfix: Beim Laden der BGH Datei wurde nicht darauf geachtet, ob der
+ allozierte Speicher auf einer geraden oder ungeraden Adresse zu liegen
+ kam. --> Absturz auf 68000ern.
+
+
+
+Philipp Donze
+Rue de Sadaz 5
+1373 Chavornay
+Schweiz
+
Index: bubble/test.c
===================================================================
RCS file: /mint/freemint/tools/hypview/bubble/test.c,v
retrieving revision 1.1
diff -u -r1.1 test.c
--- bubble/test.c 12 Feb 2006 15:17:59 -0000 1.1
+++ bubble/test.c 31 Aug 2009 09:34:20 -0000
@@ -1,14 +1,14 @@
-#include <my_tos.h>
-#include <bgh.h>
-
-void main(void)
-{
-void *help;
- help=BGH_load("TEST.BGH");
- Cconws(BGH_gethelpstring(help,BGH_DIAL,0,56));
- Cconws("\r\n");
- Cconws(BGH_gethelpstring(help,BGH_MORE,0,44));
- Cconws("\r\n");
- BGH_free(help);
- Cnecin();
+#include <my_tos.h>
+#include <bgh.h>
+
+void main(void)
+{
+void *help;
+ help=BGH_load("TEST.BGH");
+ Cconws(BGH_gethelpstring(help,BGH_DIAL,0,56));
+ Cconws("\r\n");
+ Cconws(BGH_gethelpstring(help,BGH_MORE,0,44));
+ Cconws("\r\n");
+ BGH_free(help);
+ Cnecin();
}
\ No newline at end of file
Index: doc/anleitun.txt
===================================================================
RCS file: /mint/freemint/tools/hypview/doc/anleitun.txt,v
retrieving revision 1.2
diff -u -r1.2 anleitun.txt
--- doc/anleitun.txt 6 Apr 2008 15:47:03 -0000 1.2
+++ doc/anleitun.txt 31 Aug 2009 09:34:20 -0000
@@ -1,12 +1,12 @@
-- Klick auf einen ungenutzten Eintrag: eine Alert-Box fragt ob man eine
- Marke setzen will.
-
-- Klick auf einen gesetzten Eintrag stellt diesen im aktuellen Fenster dar.
-
-- CTRL-Klick auf einen gesetzten Eintrag oeffnet diese Marke in einem
- neuen Fenster.
-
-- Shift-Klick auf einen Eintrag setzt stehts eine Marke. (ST-GUIDE
- kompatibel)
-
-- ALT-Klick auf einen gesetzten Eintrag fragt ob man diesen Loeschen will.
+- Klick auf einen ungenutzten Eintrag: eine Alert-Box fragt ob man eine
+ Marke setzen will.
+
+- Klick auf einen gesetzten Eintrag stellt diesen im aktuellen Fenster dar.
+
+- CTRL-Klick auf einen gesetzten Eintrag oeffnet diese Marke in einem
+ neuen Fenster.
+
+- Shift-Klick auf einen Eintrag setzt stehts eine Marke. (ST-GUIDE
+ kompatibel)
+
+- ALT-Klick auf einen gesetzten Eintrag fragt ob man diesen Loeschen will.
Index: doc/history.txt
===================================================================
RCS file: /mint/freemint/tools/hypview/doc/history.txt,v
retrieving revision 1.2
diff -u -r1.2 history.txt
--- doc/history.txt 6 Apr 2008 15:47:03 -0000 1.2
+++ doc/history.txt 31 Aug 2009 09:34:21 -0000
@@ -1,939 +1,939 @@
-History for HypView (v0.35.3e)
-=======================================
-10.02.2006 (v0.35.3e)
- -Modified for gemlib. [ozk]
- -Ported to gcc. [ozk]
- -Initial CVS revision. [ozk]
- -Many changes to fix problems with different sized fonts [ozk]
-
-17.09.2005 (v0.35.2e)
- -ALT-E Stack lschen (Men -> Stack lschen) [GS]
-
-20.08.2005
- -Iconifizieren des Infodialogs [GS]
-
-14.08.2005
- -Scrollweite mit <Bild nach oben/runter> entspricht
- <SHIFT> + <Pfeil nach oben/runter> [GS]
- -Ctrl-Cursor hoch/links - zur vorigen Seite blaettern [GS]
- -Ctrl-Cursor runter/rechts - zur nchsten Seite blaettern [GS]
-
-14.08.2005
- -Ist das Dokument fuer das erste Fenster nicht mehr vorhanden, war
- keine Benutzung von HypView mehr mglich. [GS]
-
-12.08.2005 (v0.35.2d)
- -Ist WDIALOG nicht vorhanden, sind einige Icons der Toolbar nicht
- bedienbar. [GS]
- -Neue VDI.LIB, damit keine Probleme mehr mit PlainTOS und Texten
- mit Umlauten.
-
-10.08.2005 (v0.35.2c)
- -Der Inhalt des letzten Fensters wird beim Oeffnen des ersten Fenster
- wieder dargestellt.
-
-09.08.2005 (v0.35.2b)
- -Wird beim Markenpfad am Anfang '$HOME\' angeben, versucht HypView
- die Marken vom Homeverzeichnis zuladen.
- z.B.: MARKFILE=$HOME\MARKEN.DAT
-
-31.07.2005
- -Fehler bei der Ausgabe der Popups unter N.AES 1.2.0 behoben. [GS]
-
-27.07.2005
- -Bei den Marken erscheinen die Dateinamen von denen sie stammen. Dazu
- muessen sie aber neu gesetzt werden [GS]
-
-09.04.2005
- -Im Info-Dialog wird das Erstellungsdatum von HypView angezeigt. [GS]
-
-03.03.2005
- -Mit dem Schluesselwort REFONLY kann bestimmt werden ob bei einem Klick
- mit der linken Maustaste nur Verweise verfolgt werden oder auch
- nicht-markierte Worte. [GS]
- -Ist ein alternativer Skin geladen, konnte es beim Umschalten zum
- "Autolocator" zu einem haesslichen weissen Fleck kommen. [GS]
-
-02.03.2005
- -Im Info-Dialog wird neben der Programmversion nun auch relevante
- Informationen zur aktuell Datei angezeigt. [GS]
- -Die MagiC Dateiauswahl bekommt jetzt ein sinnvolles Dateimuster. [GS]
-
-05.02.2005 (v0.35.2)
- -Workaround: Bug in XaAES fuehrte dazu dass HypView bei einer
- VA_START-Meldung in eine Endlos-Schleife verfiel.
- (In XaAES liefert wind_get(WF_OWNER) fuer den "open status" immer 0).
-
-30.01.2005 (v0.35.1)
- -Marken implementiert: Damit ist es nun moeglich bis zu 10 "Favoriten"
- zu speichern. Die Marken werden in der mit MARKFILE spezifizierten
- Datei gespeichert. Es kann die gleiche Datei wie bei ST-GUIDE
- verwendet werden, da das Format kompatibel ist. [GS]
- -Mit dem MARKFILE_SAVE_ASK kann die laestige Frage, ob die Marken-Datei
- gespeichert werden soll, deaktiviert werden. [GS]
- -Bugfix: Zeichenfehler bei den Popup-Mens unter XaAES.
- -Falls der Autolocator aktiv ist kann mittels CTRL+V Text aus dem
- Klemmbrett eingefuegt werden.
- -Pure C-Hilfe Protokoll (AC_HELP Meldung) wird unterstuetzt um nach
- Schluesselwoertern zu suchen.
- -Suche in der REF Datenbank (mittels REFLINK.TTP generiert)
- implementiert [PD+GS].
- Zur Zeit laesst sich nur mittels der Meldung "AC_HELP" eine Suche
- ausloesen (also z.B. HypView in QED als Hilfe-Server anmelden und
- dann HELP druecken wenn sich der Cursor auf einem Wort befindet.
-
-28.01.2005
- -Bugfix: Falls ein Programm per VA_START eine Hilfeseite welche ein
- Leerzeichen im Titel aufrufen wollte, wurde die Seite nicht gefunden
- oder es kam gar zum Absturz. [GS]
-
-30.12.2004
- -Mit CLIPBRD_NEW_WINDOW kann festgelegt werden ob beim Einfuegen mit
- CTRL+V ein neues Fenster geoeffnet wird oder nicht. Bei zusaetzlichem
- Druecken von "SHIFT" wird das Gegenteil der gewaehlten Funktion
- ausgefuehrt.
- -"Skin Laden" funktioniert wieder. Falls kein absoluter Pfad mittels
- SKIN angegeben wurde, wird im Verzeichnis "Skins" danach gesucht.
- D.h. relative Pfade beziehen sich immer auf das Verzeichnis "Skins"
- im Verzeichnis, aus dem HypView gestartet wurde.
- -AV_WINDOW_CYCLE aktiviert den globalen Fensterwechsel (via AVSERVER),
- d.h. das "CTRL+W" nicht von HypView sondern vom AVSERVER erledigt
- wird. Durch zusaetzliches Druecken von "SHIFT" wird das Gegenteil der
- Funktion ausgefuehrt.
-
-19.10.2004
- -File Errors werden in einer Alertbox ausgeben und nicht mehr ber
- die Console. [GS]
-
-16.10.2004 (v0.34.1)
- -Neues Versionsnummern Schema: die 3te Zahl steht fuer die Release
-
-14.10.2004 (v0.34)
- -"Zurueck" im Kontext-Men. [GS]
-
-06.10.2004
- -Wurde per VA_START ein absoluter Pfad angeben und die Datei befindet
- sich nicht dort. So erfolgte die Auswertung der Pfadliste nicht
- korrekt. [GS]
-
-30.09.2004
- -Menueicon aktiviert. [GS]
-
-18.09.2004
- -Bugfix: CTRL+V laedt jetzt wirklich die Datei SCRAP.TXT aus dem
- Clipboard. [GS]
- -ALT-T Inhalts-Seite zeigen (wie Inhalt-Icon, wie ST-Guide) [GS]
- -ALT-X Indexseite zeigen (wie Index-Icon, wie ST-Guide) [GS]
- -ALT-K Katalog laden (wie Index-Icon, wie ST-Guide) [GS]
- -Bugfix: Erkennung der REF Datei funktionierte nicht immer. [GS]
-
-10.09.2004
- -Gerhard Stoll interessiert sich fuer den Quellcode von HypView und
- will das Programm erweitern. Seine Aenderungen sind mit [GS] markiert.
- -Unterstuetzung der Ende Tasten (gibt es z.B. beim Milan). [GS]
-
-29.01.2004 (v0.33)
- -Bugfix: ASCII Texte, die nur eine Zeile ohne CR/LF enthielten, wurden
- nicht angezeigt.
-
-14.01.2004
- -Bugfix: HypView ignorierte die Kapitel-Angabe "Main" fr externe
- Referenzen. Dies fuehrte dazu, dass bei Referenzen auf andere Hypertexten
- nicht die richtige Startseite angezeigt wurde (sichtbar bei KATALOG.HYP).
-
-23.12.2003
- -Bugfix: Falls HYP_VIEW.CFG nicht gefunden wurde, wurde faelschlicherweise
- versucht ein nicht existierender "Skin" zu laden.
- -Bugfix: Die Bestimmung des Bootlaufwerks funktionierte bisher nicht.
-
-24.11.2003
- -Der Test auf WDIALOG wurde (hoffentlich endgueltig) beseitigt.
- -Compiler-Einstellung war beim letzten Release faelschlicherweise auf
- 68020 eingestellt. Dadurch lief das Programm unter MagiC PC und auf
- "einfachen" STs nicht mehr.
- -Laut TOS.HYP fuehrt ein @ am Anfang eines te_ptext (=eines Textfelds)
- dazu, dass der Rest als Platzhalter interpretiert wird.
- Folge: Falls bei der Suche mit dem "Autolocator" als erstes Zeichen
- ein @ eingegeben wird, werden alle Eingaben nicht angezeigt (die Suche
- wird jedoch ausgefuehrt!). (MagiC ist jedoch davon nicht betroffen!)
-
-23.11.2003
- -Der "intelligente Fuller" verschiebt das Fenster (=die obere linke Ecke
- des Fensters) nur noch wenn das vergrsserte Fenster ausserhalb des
- sichtbaren Bereichs zu liegen kommt. D.h. beim "Fullen" des Fensters
- springt das Fenster nicht mehr automatisch in die obere linke Ecke
- des sichtbaren Bereichs.
-
-17.11.2003 (v0.32)
- -Bugfix: Im ACC-Betrieb kam es nach 2maligem ffnen zum Absturz, falls
- kein DEFAULT Hypertext angegeben wurde.
-
-14.11.2003 (v0.31)
- -Monochrome Bilder (=1 Bitplane) werden jetzt nicht mehr an die Anzahl
- Bitplanes der aktuellen Aufloesung angepasst, sondern einfach monochrom
- gelassen. Sie werden dann mittels vrt_cpyfm() wie beim Original ST-Guide
- transparent auf den Bildschirm kopiert. (Diese Transparenz kann nicht
- mehr mit TRANSPARENT_PICS=0 deaktiviert werden!)
- -Bugfix: Beim Bilder Laden wurde unter Umstnden zuwenig Speicher
- alloziert, was unter MagiC zum System-Absturz fhrte.
- -Bugfix: Falls der intelligente "Fuller" deaktiviert wurde, jedoch
- die automatische Fenstergrssen-Anpassung aktiviert war, wurde beim
- Zeichensatzwechsel das Fenster auf max. Bildschirmgrsse vergrssert.
- -Beim Zeichensatzwechsel (=CTRL+Z) wird nun sichergestellt, dass die
- Seite gut sichtbar ist, d.h. es wird wenn ntig nach Oben gescrollt.
-
-10.11.2003 (v0.30)
- -Intelligenteres vergrssern/verkleinern beim Zeichensatz-Wechsel
- -Das "intelligente" vergrssern des Fensters auf die maximale Dokument-
- grsse lsst sich nun mit dem Tag INTELLIGENT_FULLER=0 deaktivieren.
- Dadurch wird die maximale Fenstergrsse auf Bildschirmgrsse gesetzt.
-
-09.11.2003
- -Falls WINADJUST=0 ist, wird trotzdem beim Zeichensatz-Wechsel die
- Fensterbreite/-hhe angepasst (="eingerastet").
- -Zeichen, die eine Zusatz-Taste (wie CTRL, ALT) zur Eingabe bentigen,
- lassen sich nun auch in den Autolocator eingeben.
-
-04.11.2003
- -Bugfix: AV-Protokoll wird nun auch beim Start als ACC initialisiert.
- -2 maliges Drcken von ESC deaktiviert und versteckt das Eingabe-Feld
- des "Autolocator". Dadurch muss nicht mehr mit einem Mausklick das
- Eingabe-Feld "weg-geklickt" werden.
-
-20.09.2003 (v0.29)
- -Der Umbruch von Text-Dateien ist nun mittels "ASCII_BREAK=" in der
- HYP_VIEW.CFG konfigurierbar. D.h. HypView bricht eine sehr lange
- Zeile um, sobald die angegebene Anzahl von Zeichen erreicht wurde.
- -Der Umbruch von Text-Zeilen ist erfolgt wenn mglich bei einem
- Leerzeichen oder Tab-Zeichen. (Hallo Sascha :-))
-
-02.09.2003
- -Bug "Endloses scrollen bei der Selektion" beseitigt
-
-29.08.2003
- -Debugging-Ausgabe bei der Selektion entfernt :-)
-
-07.08.2003
- -Fehler bei der Selektion entfernt
-
-04.08.2003 (v0.28)
- -Untersttzung fr alternative Toolbars bzw. Skins eingebaut (Variable
- SKIN zeigt auf die gewnschte RSC Datei im "Skins" Verzeichnis)
- Gunnar Grbel hat vor einiger Zeit einige erstellt.
-
-03.08.2003
- -Bugfix: Externe Referenzen mit Kapitelangabe funktionieren wieder.
- -Bugfix: Ein (mittels Zurck-Button) entferntes Dokument konnte
- beim erneuten ffnen zum Absturz fhren.
- -History-Popup mit bis zu 12 Eintrgen eingebaut.
-
-01.08.2003
- -Untersttzung fr externe Referenzen eingebaut (@xref Tag)
- (=Referenzen-Popup mit bis zu 12 Eintrgen)
-
-31.07.2003 (v0.27)
- -Unbekannte Dateien, die kein Null-Byte enthalten werden als Text
- dargestellt.
- -Text-Dateien, mit Zeilen lnger als 127 Zeichen werden umgebrochen.
- -Falls eine geladene Datei mittels eines Links geladen wurde, so werden
- folgende Dateien auch noch im realen Verzeichnis gesucht.
- Beispiel:
- "C:\GUIDES\ARCVIEW.HYP" ist ein Link auf "D:\ARCVIEW\ARCVIEW.HYP"
- Wird nun auf den Link "HISTORY.TXT" geklickt, so werden folgende
- Pfade der Reihe nach berprft:
- C:\GUIDES\HISTORY.TXT
- D:\ARCVIEW\HISTORY.TXT
- HISTORY.TXT
- $PATH + HISTORY.TXT
-
-30.07.2003
- -Bugfix: Darstellungs-Fehler bei sehr langen Seiten/Texten beseitigt.
- -Verbesserte System-Integration: Offene Fenster werden in das
- "Window-Cycling" des Desktops integriert (mittels AV_ACCWINDOPEN,
- AV_ACCWINDCLOSED).
-
-11.07.2003
- -ASCII-Text-Erkennung: Es werden nun Dateien, die die Zeichen
- 1-4 und 16-25 enthalten als ASCII angezeigt. (Obwohl es sich
- korrekterweise nicht um ASCII handelt!)
-
-27.02.2003
- -Bugfix: Falls zu einer REF Datei kein passender HYPertext vorlag,
- kam es zum Absturz.
-
-26.02.2003 (v0.26)
- -Untersttzung fr REF Dateien eingebaut.
- Wird eine .REF Datei als Pfad bergeben, so wird sie geladen und
- die entsprechende .HYP Datei angezeigt. Achtung: Es wird einfach
- nur die Dateierweiterung abgendert und nicht der entsprechende
- Eintrag in der REF Datei ausgewertet!
- -Falls eine Kapitelname im HYPertext nicht existiert, so wird
- versucht die entsprechende .REF Datei zu laden. Im Erfolgsfall
- wird dann darin nach dem passenden Kapitel gesucht.
-
-19.01.2003 (v0.25)
- -Verffentlichung des aktuellen Standes.
-
-18.01.2003
- -Arbeiten am automatischen Scrollen whrend der Selektion
- absgeschlossen. Folgende Features sind eingebaut:
- -gleichzeitiges horizontales und vertikales Scrollen
- -nach jedem Scroll-Schritt wird eine Pause von 50 ms gemacht.
- Dadurch sollte das Scrollen auch auf schnellen Rechnern brauchbar
- sein.
- -vertikales Scrollen ist linear Abhngig von der Mausposition.
- Das heisst, wenn die Maus weiter aus dem Fenster bewegt wird, wird
- auch schneller gescrollt. (64 Pixel = 1 Zeile schneller)
- -Bugfix: Falls die Katalog-Datei nicht geffnet werden kann, so
- wird die Mausform wieder in einen Pfeil zurck gewandelt.
- -Bugfix: Beim automatischen Anpassen der Fenstergrsse (WINADJUST=1)
- wird nun immer die ganze Toolbar angezeigt (=minimale Fensterbreite).
- -Verbesserungen beim Umgang mit proportionalen Fonts. (Das Fensterraster
- wird nun als Durchschnitt der Zeichenbreiten von ASCII 32 bis ASCII 154
- berechnet.)
- -Bugfix: Es wird nun immer der absolute Pfad einer Datei ermittelt.
- (Also auch fr Dateien, die sich im aktuellen Verzeichnis befinden.)
- -Das Block-Ende einer Selektion kann nun jederzeit mit SHIFT-Klick
- verndert werden.
- -Rechtsklick ffnet ein Popup mit den Block-Funktionen.
- -Blockfunktionen:
- -Speichern von HYP und ASCII Texten im ASCII Format (auch ber die
- Toolbar zugnglich).
- -CTRL+A whlt den ganzen geladenen Text aus
- -CTRL+C kopierte den selektierten Block ins Clipboard. Falls kein
- Text selektiert ist, wird der ganze Text kopiert.
- -CTRL+V ladet die Datei SCRAP.TXT aus dem Clipboard. (wie ST-Guide)
-
-xx.01.2003
- -Diverse Arbeiten am automatischen Scrollen whrend der Selektion.
-
-31.12.2002
- -Bugfix beim automatischen Scrollen. Keine "Lcher" mehr vorhanden.
-
-18.12.2002
- -Verbesserungen bei der Selektion.
-
-17.12.2002
- -Autolocator: Leerzeichen am Anfang der Eingabe werden ignoriert.
- -Selektion ist nun auch mit proportionalen Zeichenstzen kompatibel.
- Bei Bitmap-Zeichenstzen berechnet anscheinend die Funktion
- vqt_extent() die Grsse einer leeren Zeichenkette (="") falsch,
- falls kursiv als Attribut definiert ist.
-
-16.12.2002
- -Selektion wieder entfernt. Beginn einer neuen Implementation.
- -NEU: Automatisches Scrolling in horizontaler Richtung beim Selektieren.
-
-06.12.2002
- -Bugfix: LINKEFFECT wird nun genau gleich wie bei ST-Guide behandelt.
- D.h. der angegebene Effekt wird als "zustzlicher" Text-Effekt mit dem
- gerade aktuellen Verknpft.
- -Bugfix: Die Icon-Position beim Iconifizieren wird nun immer neu einge-
- stellt.
- Dadurch klappt's auch mit ICFS bzw. Iconify-Servern, die
- wind_get(WF_ICONIFY) nicht untersttzen.
-
-04.12.2002
- -Da ich aus zeitlichen Grnden kaum zum Programmieren kommen,
- verffentliche ich den aktuellen Stand.
-
-29.11.2002
- -automatisches Scrollen in vertikaler Richtung beim Selektieren.
-
-27.11.2002
- -Bugfix: Flschlicherweise wurden beim Klick auf "Zurck" Dateien
- geschlossen, die evtl. noch bentigt wurden.
- (Z.B. "Katalog.hyp" -> "TOS.hyp" -> "Katalog.hyp" -> zurck
- -> zurck -> CRASH!!!)
-
-26.11.2002
- -Einfache Text-Selektion per Maus eingebaut.
- Folgende "Features":
- -Funktioniert mit binr, ASCII und HYP Dateien
- -Kein automatisches Scrollen am Fensterrand
- -Keine Bercksichtigung der Text-Attribute (Betrifft HYP)
- -Kein "Fortsetzen" der Selektion mittels Shift-Taste.
- -Noch KEINE Aktionen eingebaut (also nur selektieren mglich).
-
-24.11.2002
- -Bugfix: Speicherschutzverletzung bei AV_PROTOKOLL "beseitigt". D.h.
- HypView geht davon aus, dass bei der Anwort mit VA_PROTOSTATUS der
- Zeiger auf den eigenen Namen nicht mehr bentigt wird und daher
- freigegeben werden kann. Ein Desktop, der danach trotzdem auf diesen
- Zeiger zugreift wird immer noch "abschmieren". Selberschuld!
-
-20.11.2002
- -Bugfix: Zugriff auf ungltigen Zeiger beseitigt. (Speicherschutz)
-
-18.11.2002
- -kleinere Bugs beseitigt, die sich eingeschlichen haben.
-
-17.11.2002 (v0.20)
- -Autolocator-Funktionalitt eingebaut.
- Dies funktioniert mit allen Formaten (=HYP, ASCII, binr).
- Funktionsweise:
- -Such-Text eingeben
- -RETURN startet die gleiche Suche erneut
- -ESC lscht den eingegebenen Text
- -Einfache Speicherfunktion fr HYP, welche die aktuelle Seite als ASCII
- speichert.
-
-13.11.2002
- -Nach der internen Umstellung luft nun (anscheinend) alles so wie in der
- vorherigen Version.
- -Die Mult-Window-Bugs sind nun hoffentlich behoben.
-
-02.10.2002
- -Sortier-Reihenfolge der HISTORY gendert (=neuste Eintrge zuoberst)
- -Allgemeine berarbeitung begonnen. (Da sich die Abstrze beim Gebrauch
- des "Multi-Window-Features" nicht so einfach beseitigen liessen.
- = strukturelle Schwchen)
- -Die Standard-Pfadliste wird nun beim Starten automatisch an das Start-
- laufwerk angepasst. (z.B. wird aus C: M: falls von M: gebootet wird.)
- Dies betrifft nur die Standard-Pfade! D.h. es wird diese nderung nur
- vorgenommen, falls keine andere Pfadliste aus der CFG geladen wurde.
- -Bugfix: beim seitenweise Scrollen per Maus wurde immer eine Zeile
- bersprungen.
- -Bugfix: die Fileselect-Box im Fenster ist wieder zurck :-)
- -Bugfix: Falls mehrere Fenster offen waren, geriet die "History"
- manchmal durcheinander, was sogar zum Absturz fhren konnte.
- -Bugfix: Memory-Leck bei der Anzeige von ASCII-Dateien beseitigt.
-
-24.09.2002 (v0.17)
- -Bugfix: Unntige/Fehlerhafte Mfree-Aufrufe beseitigt.
- -Bugfix: Datei-Handle wurde nicht geschlossen, falls die Datei beim
- "zurck"-Bewegen erneut geffnet werden musste.
- -Bugfix: ein zu ffnendes Fenster hat nun immer mindestens 1 Zeile und
- 5 Kolonnen. Dadurch kann ein Absturz unter MagiC verhindert werden,
- da kein "zu kleines" Fenster erstellt wird.
- -Bugfix: Speicherschutz-Problem unter MiNT beseitigt (zumindest falls es
- keine anderen mehr hat).
- -Bugfix: Als ACC wurde nicht auf die AP_TERM Meldung reagiert.
-
-23.09.2002 (v0.16)
- -Automatisches Anpassen der Fenster berarbeitet. Es sollte nun nicht mehr
- passieren, dass Fensterteile teilweise ausserhalb des sichtbaren Bereichs
- zu liegen kommen.
- -Bugfix: Falls eine gerade offene Datei nochmals geffnet wurde, wurde
- in der "History" die falsche Seitennummer gespeichert.
- -HypView berprft nun auf Wunsch (in der Konfiguration CHECK_TIME=1)
- vor dem erneuten Zugriff auf Dateien, ob sich diese gendert haben und
- ladet sie erneut. (Praktisch beim Schreiben von Hypertexten und beim
- Erstellen des KATALOG.HYP)
-
-18.09.2002
- -HypView luft nun auch falls die Zeilen von HYP_VIEW.CFG mit LF (=Unix)
- oder auch nur mit CR (=Mac) abgeschlossen sind.
- -Bugfix: Zeichenstze unterschiedlicher Grsse wurden nicht korrekt
- verarbeitet. Dies fhrte zu "berreste" beim Scrollen.
-
-16.09.2002
- -Neues Schlsselwort in der Konfiguration: DEBUG_FILE
- Alle Fehlermeldungen, die normalerweise auf STDERR (=bei MagiC ist das
- der Bildschirm) knnen auf eine beliebige Datei umgeleitet werden.
- Dadurch lsst sich meine MiNT-Installation auch berreden die Fehler
- anzuzeigen.
- -Bugfix: Beim Starten als ACC wollte HypView die Parameter auswerten,
- obwohl keine existieren bzw. die Daten ungltig sind.
- -Bugfix: Es konnte vorkommen, das der Hilfe- und der Index-Button
- anwhlbaren, obwohl es diese Seiten nicht gab.
- -Abfrage auf WDIALOG vorlufig ausgebaut. (Hallo MiNTler :-))
- -Bugfix: Falls die HOME-Variable nicht mit einem '\' oder '/' ab-
- geschlossen war, wurde auf einen ungltigen Pfad zugegriffen und die CFG
- nicht gefunden.
-
-15.09.2002 (v0.15)
- -Popups, die im Hypertext per @previous und @next in den HYP integriert
- sind werden nun auch geladen und dargestellt. (Vorher blockierten diese
- die Navigation mittels "Vorwrts" und "Rckwrts".)
- -Untersttzung von WINPOS: Bugs beseitigt und verbessert (=es ist nun
- nicht mehr mglich das Fenster so zu positionieren, dass die Fenster-
- elemente nicht mehr bedienbar sind).
- -"CTRL+Klick geht nicht immer"-Bug beseitigt: 0 Byte am Stringende
- vergessen :-)
- -Falls in einem Hypertext keine Hilfe-Seite mittels @help definiert ist,
- wird nach dem Kapitel "Help" gesucht.
- -Bugfix: Die Seite, die mittels @default in einem HYP definiert wird,
- wurde flschlicherweise immer als Startseite benutzt.
- -Bugfix: Ein Klick auf ein @limage fhrte zum Absturz.
-
-13.09.2002
- -Falls eine VA_START Meldung ankommt, die keine Datei als Parameter
- enthlt, so wird dies als "Aufwecken" von HypView interpretiert.
- Falls mit DEFAULT=xy eine Datei definiert wurde, so wird diese geffnet,
- sonst wird der File-Selector geffnet.
- -Bugfix: Als ACC gestartet konnte es vorkommen, dass HypView auf ein
- nicht mehr existierendes Fenster zugriff, was natrlich zum Absturz
- fhrte.
-
-04.09.2002 (v0.14)
- -Untersttzung fr "echte" Page-Up und Page-Down Tasten (wird von
- MagiCMac untersttzt).
- -Falls kein Katalog mittels "KATALOG=xy.hyp" definiert ist, dann lsst
- sich das Katalog-Icon nicht mehr anwhlen.
- -Bugfix: Bilder wurden beim zeilenweisen Scrollen "abgeschnitten".
-
-30.08.2002 (v0.13)
- -Obwohl es noch einiges zu implementieren gbe, verffentliche ich diese
- "Etape".
-
-22.08.2002
- -Links vom Typ SYSTEM_ARGUMENT, REXX_SCRIPT und REXX_COMMAND (=4-6) werden
- nun folgendermassen behandelt:
- -SYSTEM_ARGUMENT und REXX_SCRIPT fhren zu einer AV_STARTPROG Meldung
- an den AV-Server.
- -REXX_COMMAND fhrt zum Senden einer VA_START Meldung an den Host, der
- mittels @hostname im Hypertext gesetzt wurde.
- -Bei allen drei Typen wird vor dem Versenden der Meldung versucht einen
- absoluten Pfad auf eine existierende Datei zu erstellen. D.h. als Pfad
- wird der Zugriffspfad des Hypertexts genommen und das "Kommando" als
- Dateinamen interpretiert. Wird eine solche Datei gefunden, so wird
- die Meldung mit dem kompletten Zugriffspfad versendet. Ansonsten wird
- nur das "Kommando" versendet. Z.B. findet QED dadurch die Dateien.
- => Beispiel in TEST.HYP/Kommunikation
- -Interne-Representation der Hypertext-Seiten gendert. Dadurch wurde die
- Anzeige und das Scrollen beschleunigt. Trotzdem scheint das Zeilenweise-
- scrollen beim ST-Guide schneller zu gehen.
-
-21.08.2002
- -Weitere Anpassung des TEST.HYP
- -NEU: Klick auf @alink Verweise ffnen nun ein neues Fenster. Es gibt aber
- kaum Hypertexte die das bisher nutzen, da ST-Guide bekanntlich nur 1
- Fenster verwalten kann. Evtl. ndert sich das mit HypView?
- -Links vom Typ 5 (REXX_SCRIPT) werden wie Typ 4 und 6 einfach an den
- AV-Server weitergegeben.
- -Links vom Typ 7 (QUIT) fhren zum Schliessen des aktuellen Fensters.
- -Links vom Typ 4-6 werden zuerst als Pfade interpretiert und im aktuellen
- Verzeichnis gesucht. Falls diese Datei nicht existiert, wird statt dessen
- der unvernderte Link an den AV-Server bergeben.
- Damit klappt es nun auch mit externen Verweisen auf nicht-Texte (z.B. auf
- eine Batch-Datei im aktuellen Verzeichnis => siehe TEST.HYP).
-
-20.08.2002
- -Test-Hypertext berarbeitet und mit neuen Seiten fr nicht-existierende
- Features ergnzt. Jetzt geht's an's implementieren.
-
-27.07.2002
- -Bugfix: Falls beim schliessen eines Hypertextes noch ein Popup-Fenster
- offen war beendete sich das Programm nicht.
-
-14.07.2002 (v0.12)
- -Funktionsnderung: CTRL+UP/DOWN (=Strg und Pfeilhoch/-runter) bewirken
- nun wie SHIFT+UP/DOWN ein seitenweises Scrollen des Fensters.
- Dadurch funktioniert die "Page-Up/Down" Taste von PC-Tastaturen auch
- wie zu erwarten ist (und auch von anderen GEM-Programmen praktiziert
- wird). Dadurch weicht die Bedienung von ArcView von der ST-Guide
- blichen ab.
- -Bugfix: Tastatur-Funktionen, die fr binr-/ASCII-Texte nicht verfgbar
- sind, fhren nicht mehr zum Absturz.
- -NEU: Falls CTRL whrend dem Klick auf einen Link gedrckt gehalten
- wird, dann wird dieser in einem neuen Fenster dargestellt.
- (Achtung: Die Datei wird erneut geladen! => doppelter Speicherverbrauch!)
- -Falls der Zeichensatz gendert wurde (CTRL+Z), werden alle offenen
- Dokumente aktualisiert und den entsprechenden Fenster eine Redraw-
- Meldung geschickt.
- -Links des Typs 6 (REXX_COMMAND) werden wie Typ 4 (SYSTEM_ARGUMENT)
- behandelt. Dadurch wird das ffnen einer Datei mit einem speziellen
- Viewer dem AV-Server berlassen (der also den passenden Viewer suchen
- und starten muss).
- -NEU: In der Konfigurationsdatei kann mittels VA_START_NEWWIN angegeben
- werden, wie auf eine VA_START-Meldung reagiert wird (0=kein neues Fenster
- ffnen;1=evtl.;2=immer)
- -Bugfix: Ein iconifiziertes Fenster wurde beim Laden einer neuen Datei
- nicht automatisch "deiconifiziert".
-
-13.07.2002
- -Bugfix: Das Index-Icon ist nur noch anwhlbar falls auch wirklich eine
- Index-Seite im Hypertext enthalten ist.
- -Bugfix: Fehler in der Cache-Verwaltung beseitigt. Es wurde auf ein Hyper-
- text zugegriffen, der nicht mehr komplett im Speicher war.
-
-29.06.2002 (v0.11)
- -Bugfix: ACC Betrieb endete meist mit einem Bus-Fehler.
- -Bugfix: Hyp-Header wurden unntigerweise mehrmals geladen, weil nicht
- bemerkt wurde das die Datei schon geffnet ist. (=>Cache)
-
-26.06.2002
- -Bugfix: Falls keine Default-Datei angegeben wurde, gab es einen Crash.
- -Neu: System-Argumente werden per AV_STARTPROG an den AV-Server bergeben.
- (D.h. man kann nun z.B. den KATALOG.HYP erneuern)
- -Neu: Falls eine Datei aus einer anderen geladen wird (z.B. Verweis auf
- HISTORY.TXT), dann wird versucht die Datei im Pfad der geffneten Datei
- zu ffnen. (Man sollte nicht "." in die Pfadliste aufnehmen, da sonst
- HypView Dateien in seinem (!) Verzeichnis sucht.)
- -Bugfix: Der Link-Effekt wurde erst ab 16 Farben bernommen.
-
-25.06.2002 (v0.10)
- -Bugfix: Speicherleck beim wechseln zwischen Dateien gestopft.
- -Cache-Funktion wieder implementiert.
- -Bugfix: "Speicher-Schiesser" beseitigt.
- -Bugfix: Wechsel zwischen HYP-Dateien und anderen Formaten klappt
- wieder (=> Cache-Leerungs-Bug beseitigt)
- -Popups funktionieren wieder.
- -Zeichensatz-Wechsel (FONT <-> XFONT) mittels CTRL+Z klappt wieder.
- -Bugfix: TOS.HYP luft nun wieder.
- -Bugfix: Bestimmen der Klickposition funktioniert nun auch mit Hyper-
- texten, die Bilder enthalten und mit HCP < 3 erstellt wurden.
- (="Chrysalis-Bug")
-
-24.06.2002
- -Navigation mittels Links wieder implementiert
-
-20.06.2002 bis 22.06.2002
- -HYP-Format wird nun wieder geladen und angezeigt. (Nachwievor nach
- der alten Methode)
- -Navigation mittels Iconleiste und Tastatur wieder eingebaut.
-
-19.06.2002
- -Bugfix: Ein CTRL+ALT+HOME fhrt nicht mehr zum iconifizieren des
- Fensters.
- -Die Konfiguration wird nun wieder aus der Datei geladen.
- Dabei habe ich einige Konfigurations-Punkte umgetauft und ein paar neue
- eingefhrt (TEXT_COLOR, BIN_COLUMNS, ASCII_TAB, LINK_EFFECT).
-
-16.06.2002
- -Neu: Untersttzung fr ASCII Texte mit Atari-/PC-,Mac- und Unix-Zeilen-
- enden. (Es knnen nur Dateien geladen werden, die vollkommen in den
- Arbeitsspeicher passen.)
- Ein Text wird als ASCII Text erkannt falls er keine Zeichen unter dem
- Wert 32 enthlt (mit Ausnahme von CR, LF und TAB).
- -Binrdateien haben eine fixe Zeilenlnge (zur Zeit 76, wird aber spter
- konfigurierbar).
- -Beschleunigtes Scrolling, durch das ich mittels zustzlichem Speicher
- eine Tabelle mit allen Zeilen-Anfnge erstelle.
-
-15.06.2002
- -Komplette berarbeitung begonnen.
- Das Konzept wird nun modularisiert, d.h. es werden in Zukunft mehr als
- nur HYP Dateien untersttzt. (Binr, ASCII, HYP fr den Anfang)
- -Laden und Darstellen von Binrendaten klappt. (0-Zeichen werden als
- Leerzeichen ausgegeben)
- -Untersttzung fr mehrere Fenster.
-
-11.06.2002
- -Bugfix: Beim Berechnen der maximalen Seitenhhe wurde die Hhe von
- "@image" nicht korrekt bercksichtigt.
- -Bugfix: @limage Tags werden nur noch interpretiert, falls der
- Hypertext mit dem HCP Version 3 (=aktuellste) compiliert wurden.
- Dadurch wird die Darstellung von "alten" Hypertexten verbessert.
-
-09.06.2002 (v0.07)
- -HypView bildet nun nicht mehr die Fensterbreite als Minimum von
- @width und der ermittelten Kolonnenanzahl. (Anscheinend ist das
- wieder einmal ein Fehler in der ST-Guide Dokumentation.)
- -Bugfix: Falls WINADJUST=0 war und keine Fensterposition mittels
- WINPOS definiert wurde, wurde das Fenster in maximaler grsse
- geffnet, was beim Scrollen meistens zu abgeschnittenen Texten
- fhrte. (Hallo Thomas! Ich habs gefunden :-))
- -Bugfix: Manchmal wurden falsche Text-Attribute beim Neuzeichnen
- benutzt.
- -Bugfix: Bei der Suche nach der Seite wird nun Gross-/Kleinschreibung
- ignoriert.
- -Bugfix: Bei von Aussen bewirkten Seitenwechsel (z.B. Hilfe-Aufruf aus
- einem anderen Programm) wurde immer der Cache-Speicher gelscht und
- ein History-Eintrag vermerkt, auch wenn der Sprung innerhalb der
- gleichen Datei war und die Zielseite schon dargestellt wurde.
-
-05.06.2002 (v0.06)
- -Falls eine Datei nicht gefunden wird, wird der Name in der Fehler-
- meldung erwhnt.
- -Gunnar hat die 16 Farben-Version berarbeitet.
-
-04.06.2002
- -Problem entdeckt: Bei den Konfigurationsvariablen wie z.B. PATH,
- KATALOG, DEFAULT darf kein Kommentar in der gleichen Zeile stehen,
- da sonst die Daten falsch interpretiert werden. Also Vorsicht!
-
-02.06.2002
- -Gunnar Grbel hat sich die Mhe gemacht die HypView-Resource einwenig
- an die modernen Zeiten anzupassen und hat ein paar schne Icons in
- 256 Farben gestaltet. (Vielen Dank!)
- -Ich habe die Icons rasch in 16 Farben konvertiert.
- -Bugfix: Das Icon fr das History-Popup wurde aktiviert, obwohl diese
- Funktion noch nicht verfgbar ist.
-
-25.05.2002
- -ACC Behandlung gendert:
- CTRL+Q als ACC: Schliessen aller Fenster
- als APP: Beenden des Programmes
- AP_TERM : Beendet immer das Programm!
-
-23.05.2002 (V0.05)
- -Tastatur-Wiederholung wird nun beim Auswerten deaktiviert.
- Dank Richard klappt dies sogar auf einem sauberen Weg (wenn mglich).
- -Die Hintergrundfarbe wird nur noch bercksichtigt, falls mindestens
- 16 Farben zur verfgung stehen. (=Falls man einmal im S/W Modus startet,
- kann man doch noch Hypertexte ansehen.)
- -Es ist nun mglich HypView auch zu beenden falls es als ACC gestartet
- wurde. --> Vorsicht unter SingleTOS!!
- -Es wird nun immer die selbst ermittelte Zeilenbreite verwendet auch falls
- das Header-Tag @width existiert. Der ST-Guide macht das auch so.
- (=> Hypertext Dokumentation ist da fehlerhaft!)
- -Bugfix bei der True-Color Anpassung von grossen Bildern beseitigt.
- -Bilder werden nun wie beim ST-Guide "transparent" ausgegeben.
- Falls die Darstellung mit 16 bis 256 Farben erfolgt verursacht dies
- mehr Aufwand als ohne Transparenz!
- Das Feature kann mit "TRANSPARENT_PICS=0" deaktiviert werden.
-
-08.05.2002
- -Minimale Verbesserung bei der True-Color Konvertierung (=nur noch 15
- Mono-Bitmaps mit vrt_cpyfm())
-
-04.05.2002
- -True Color Untersttzung vollstndig umgeschrieben. Nun werden alle
- einzelnen Farben extrahiert und als Monochrombitmap mit vrt_cpyfm()
- in das True Color Bild geschrieben.
- Dies ist zwar langsam, funktioniert jedoch auf allen Grafikkarten?!
- -Bugfix bei der Parameterbergabe (Dateiname - Kapitelname).
- Ausserdem wird nun auf ".HYP " (nicht nur "HYP ") getestet um den
- Kapitelnamen zu finden.
-
-01.05.2002 (V0.03)
- -CTRL+I zeigt die Versionsnummer von HypView an.
- -HYP-View luft nun endlich als ACC! (Das Programm verhlt sich prinzip-
- iell genau gleich. D.h. ich treffe keine Sicherheitsmassnahmen um die
- Lauffhigkeit unter TOS sicherzustellen!)
-
-30.04.2002
- -Wie ich vernehmen konnte, klappt's nun mit der NOVA-Kompatibilitt,
- aber mit der Milan- und der Eclips-Grafikkarte luft's noch nicht :-(
- -Falls kein Default-Hypertext angegeben wurde (DEFAULT=xy), dann wird
- die Fileselect-Box aufgerufen.
- Mittels CTRL+O kann sie jederzeit erneut aufgerufen werden.
- Auch das Icon zum Laden der Datei ist jetzt aktiv.
- -Bugfix: Falls eine Datei schon geffnet/geladen wurde, konnte es
- vorkommen, dass bei einem erneuten Verweis auf diesen Hypertext
- nicht bemerkt wurde, dass er schon im Speicher ist. (=> doppelt
- geladen)
- -Kommandozeile, VA_START- und Drag&Drop-Parameter:
- -Falls die ersten 3 Zeichen "*:\" sind, so werden diese bersprungen.
- (Nach ST-Guide-Konvention wird dieses Format verwendet, falls das
- Programm den absoluten Pfad einer Datei nicht weiss.)
- -Am rechten "Parameter-Rand" wird nach einem Kapitelnamen gesucht
- -Der Rest wird als Pfad angesehen. Konnte die Datei nicht geffnet
- werden, so wird versucht mit Hilfe der PATH Variable die Datei
- zu finden.
- Benennt man nun HYP_VIEW.APP in ST-GUIDE.APP um und lsst es laufen
- (da es noch nicht als ACC luft), so schicken alle ST-Guide-kompatiblen
- Programme ihre Hilfe-Anfragen an HYP-View!
- -Aus historischen Grnden werden die Kapitelnamen mit einem ' '
- (=Leerzeichen) vom Pfad/Dateinamen getrennt. Der original ST-Guide
- interpretierte also ab dem ersten Leerzeichen alles als Kapitelnamen.
- Dies fhrte dazu, dass der ST-Guide nicht mit Leerzeichen im Pfad
- zurechtkam.
- Um nun kompatibel zu bleiben und trotzdem Leerzeichen im Pfad/Dateinamen
- zu erlauben sucht HYP-View nicht einfach nach einem Leerzeichen, sondern
- nach der Datei Extension "HYP" gefolgt von einem Leerzeichen. Wird also
- die Zeichenfolge "HYP " (Gross-/Klein-Buchstaben ist egal) im Pfad
- gefunden, so wird der Rest als Kapitelnamen interpretiert.
- ==> Also Achtung: Keinen Pfad erstellen, der auf dieses Muster passt,
- da die darin enthaltenen Hypertexte nicht gefunden werden knnen!
-
-28.04.2002
- -nderungen am True-Color Workaround.
- -Externe Konfiguration ber die HYP_VIEW.CFG erweitert:
- -WINPOS erlaubt nun Breite und Hhe (in Zeichen!)
- -WINADJUST aktiviert/deaktiviert die autom. Fenstergrssen-Anpassung
- -BACKCOL erlaubt das Einstellen der Hintergrundfarbe.
- (im Gegensatz zum ST-Guide werden die Bilder nicht transparent
- gezeichnet.)
- -Ein paar Kommentare zu den verschiedenen Variablen eingefgt.
- -Bugfix: Absturz falls kein GDOS installiert war.
- -Datei-Existenz wird nun mittels Fopen/Fclose berprft anstatt mit
- Fxattr. Damit luft HYP-View auch unter Single-TOS (zumindest unter
- TOS 4.04 habe ich kein Problem bemerkt).
-
-27.04.2002
- -Anscheinend klappt's mit dem True-Color Workaround nicht.
- -Bugfix: Da die @limage-Definition anscheinend nicht ganz rckwrts-
- kompatibel ist (was sich beim NOVA-Hypertext herausstellte), werden
- nun Bilder mit der Breite = 1 Zeichen als @limage Bilder interpretiert.
- Dadurch sollte es keine Probleme mit Hypertexten vor dem 19.04.1995
- mehr geben.
- -Tests haben gezeigt, dass HYP-View die Bilder von Hypertexten, die
- mit dem HCP vor dem 19.04.1995 erstellt wurden, nicht 100% an der
- gleichen stelle wie beim ST-Guide anzeigt. (=HYP-View: 1 Pixel weiter
- unten)
-
-26.04.2002
- -Nachdem ich auf meine "Alpha-Preview" einige Reaktionen erhalten habe,
- stellte sich auch heraus, dass es Probleme mit verschiedenen Grafik-
- karten gibt unteranderem: NOVA und die im Milan eingebaute.
- Der Fehler liegt wahrscheinlich daran, dass diese die Little-Endian
- Darstellung benutzen (=also die auf dem PC gebruchliche). Daher habe
- ich einen weiteren Workaround eingebaut.
- -Neues Schlsselwort in der Konfigurationsdatei: LITTLEENDIAN=1
- aktiviert die Little-Endian Darstellung bei Grafikkarten. (Ich weiss,
- dass das keine gute Lsung ist. Aber evtl. luft's so auf die schnelle!)
-
-21.04.2002
- -Eine "busy bee" zeigt nun, dass gerade eine Seite geladen wird.
- Dies ist vorallem wichtig beim langen Laden des TOS.HYP Indexes :-)
- -Wie ich bei Tests mit dem HCP erfahren musste, werden nur Bilder
- mit 1 oder 4 Ebenen (=monochrom und 16 Farben) untersttzt, dadurch
- verringert sich der Aufwand fr mich: Ich muss nur eine Routine
- schreiben, die 4 Planes in 1 Plane konvertiert.
- -Falls zuwenig Farben zur Darstellung der Bilder im Original vorhanden
- sind, wird das gleiche Verfahren wie beim ST-Guide angewendet:
- Alle Farben bis auf Weiss und Hellgrau werden Schwarz gefrbt.
- -Falls bis zu 8 Ebenen (=256 Farben) vorhanden sind, werden die Bilder
- "expandiert".
- -Rudimentre (=usserst schlechte) Routine, die Bilder ins Gerte
- abhngige True-Color Format konvertiert. (Bisher lediglich auf meinem
- Falcon in High-Color (16Bit) getestet.)
-
-20.04.2002
- -Mit der Tastenkombination CTRL+Z kann zwischen den 2 Zeichenstzen
- (FONT und XFONT) gewechselt werden.
- -Bugfix: Beim Bestimmen der Fensterbreite wurden flschlicherweise
- Linienbefehle als Text und als Linien interpretiert, was je nach
- Anzahl Linien zu einer unntig grossen Fensterbreite fhrte.
- -Die Einstellungen werden nun aus der Datei HYP_VIEW.CFG geladen.
- Damit lassen sich endlich die Einstellungen "von Aussen" verndern.
-
-18.04.2002
- -Untersttzung von Popup-Texten.
- Verbesserungen gegenber dem ST-Guide:
- - Popup in einem eigenen Fenster (=ohne Randelemente), jedoch
- Applikations-modal.
- Dadurch bleibt die Menuzeile aktiv und die Ausgabe anderer
- Programme wird nicht blockiert.
- - Popups knnen auch Grafik-Objekte und Bilder enthalten.
- (Dummerweise entfernt der HCP die Objekte aus den "pnode"s,
- da der ST-Guide dies nicht verkraftet. Abhilfe: man muss ein
- normaler Eintrag (="node") erstellen und nach dem compilieren
- mit HCP den Header von Hand anpassen!)
- - Die Grsse ist nicht beschrnkt. Es werden aber keine Slider
- angezeigt, falls das Popup grsser als der ganze Bildschirm
- ist. => Zu grosse Popups werden nicht ganz angezeigt.
- (aber trotzdem besser als die 12 Zeilen mit 60 Zeichen, die
- der original ST-Guide bietet)
-
-13.04.2002
- -Nun kann man zur Anzeige auch proportionale Zeichenstze verwenden.
- Die Darstellung ist dabei (wie schon bei den quidistanten Zeichen-
- stzen) 100% ST-Guide kompatibel.
- -Probleme bereiten die kursiven Texte, da zur Berechnung der "Klick-
- Position" die Breite jedes Zeichens genommen wird. Und nicht etwa
- die Breite der einzelnen Worte. Dadurch, kann die genaue Position
- der angeklickten Stelle nicht bestimmt werden!
- Dieses Problem hat aber der "echte" ST-Guide auch schon!
- -Falls sich an der angeklickten Position nichts befindet, wird das
- darunterliegende Wort ermittelt und an eine Pseudo-Suchmaschine
- bergeben.
-
-11.04.2002
- -Nach tagelanger Suche, habe ich endlich herausgefunden, warum die Titel-
- Grafik des "Chips'n'Chips" Hypertextes falsch dargestellt wurde:
- Grafiken drfen auch grsser als die 65 KB sein. Die wahre grsse muss
- aber mit Hilfe des "Next" Wertes berechnet werden.
- D.h. "Next" enthlt das High-Word der Lnge der entpackten Daten.
- Etwas kompliziert formuliert. Wer also genau wissen will wie das geht,
- kann bei mir nachfragen.
-
-07.04.2002
- -Bugfix: Das Anpassen der Fensterbreite und Hhe bercksichtigte
- nicht die aktuelle X/Y Position.
-
-12.03.2002
- -GetLink() korrigiert. (Nach wie vor keine Untersttzung fr
- proportionale Zeichenstze)
- -Beim Anzeigen einer neuen Seite springt das Fenster nicht stndig
- in die obere linke Ecke. D.h. es wird nur noch Breite und Hhe
- angepasst.
- -Die wichtigsten Tastenkrzel zum Navigieren im Hypertext implementiert.
-
-Nachdem ich umgezogen bin, hatte ich endlich wieder Zeit um an meinem
-Programm zu basteln:
-
-
-11.03.2002
- -Die 1. Plane aller Bilder wird nun korrekt dargestellt. Das bedeutet,
- dass man mit HypView monochrome Hypertexte ansehen kann.
- Bei Farbbildern kann man teilweise nur erahnen, was dargestellt wird.
- -Der Index- und der Katalog-Button haben nun ihre Funktion erhalten.
- (Index springt zur Seite mit dem Namen "Index" und Katalog ffnet die
- Datei "KATALOG.HYP")
-
-05.03.2002
- -Externe-Referenzen funktionieren nun auch.
- -History-Eintrge knnen nun auf andere Dateien zeigen.
- -Falls die Datei nicht im aktuellen Verzeichnis gefunden wird, so wird
- noch in den angegebenen Suchpfaden gesucht.
-
-03.03.2002
- -Nun kann man auch mit Mausklicks auf Links durch den Hypertext "browsen"
- wobei das anzeigen von externen Referenzen und Popups noch nicht klappt
- und einfach mit einer Meldung quittiert wird.
- Das ganze muss noch etwas umstrukturiert werden!
- -Probleme bei der History, falls sich der Pfad gendert hat.
-
-02.03.2002
- -Die Reihenfolge der Seiten (=interne Vernetzung) wird nun beim Blttern
- bercksichtigt. Falls es in eine Richtung nicht mehr weitergeht, so
- wird der entsprechende Richtungspfeil versteckt.
- -Ich habe provisorisch die Icons vom ST-Guide bernommen. Schliesslich
- soll spter einmal jede seiner Funktionen bernommen werden.
-
-28.02.2002
- -Die Anzeige klappt nun. Probleme bereiteten mir die "@limage" Bilder.
- Die Anzeige basiert nun auf folgenden Annahmen:
- Alle Grafikobjekte ("image","limage","box","line","rbox") befinden
- sich am Anfang der entpackten Daten.
- Danach befindet sich der eigentliche Text (inkl. Textattribute und
- -Bisher funktioniert erst das vorwrts und rckwrts Blttern ohne die
- Reihenfolge zu beachten, also Node 0,1,2,...
-
-27.02.2002
- -Bugfix: Bei der Verwendung von Textattributen wurde nicht beachtet, dass
- je nach Effekt der Text breiter wurde (z.B. Italic).
-
-16.02.2002 bis 23.02.2002
- -berarbeitung der Anzeigeroutinen
- -Es wird bei jedem Redraw der ganze Hypertext neu gezeichnet
- ==> nicht besonders schnell!
- -Probleme mit "limage" bestehen noch.
- -Bei Bildern wird bisher nur die 1. Plane dargestellt (=kein Dithern,
- keine farbigen Bilder)
-
-15.02.2002
- -Arbeiten am "GEM-Gewand": Texte werden nun in einem Fenster dargestellt.
- Noch keine Grafiken implementiert.
-
-30.01.2002
- -Kleine Umstrukturierung, damit die Routinen wie eine Bibliothek
- zu einem anderen Programm dazugelinkt werden knnen.
-
-==> jetzt muss das ganze in eine GEM-Applikation "gestrickt" werden.
-
-
-29.11.2001
- -Die HYP-Laderoutine neu geschrieben:
- -HYP_DOCUMENT enthlt nun die Indextabelle sowie Zusatzinfos
- (Autor, Version, ...) und natrlich der Zugriffspfad auf die Datei.
- -Besteht nun aus einem einzigen Speicherblock (=nicht mehrere
- "Mfree()" ntig um das Dokument zu entfernen)
- -DisplayXY() Routinen angepasst.
-
-25.11.2001
- -interne Reorganisation
-
-22.11.2001
- -Verarbeitet nun die meisten getesteten Seiten. D.h. bisher werden alle
- grafischen Attribute bersprungen.
- -Kann auch verschlsselte Dateien lesen (wie z.B. Chips&Chips)
-
-20.11.2001
- -Einfache Textdarstellung einer Seite ohne Grafiken und Links klappt
- nun einigermassen.
-
-19.11.2001
- -Nachdem ich seit geraumer Zeit mit dem Gedanken gespielt habe einen
- eigenen HYPertext Viewer zu schreiben, habe ich endlich mit etwas
- Code begonnen. (Ausserdem habe ich auch schon seit lngerer Zeit den
- Quelltext zu WinGuide von dessen Autor Frank Rger erhalten.)
- Es steht also nichts mehr im Weg um das Projekt zu realisieren.
- -Die erste Version ist wie immer eine ".TOS" Version mit Textausgaben.
- Zur Zeit wird lediglich der HYP-Header sowie die Index-Daten aus einer
- HYP-Datei geladen und eine Indextabelle im Speicher erstellt.
- Danach wird ein "Baum-Artiger" Index angezeigt.
+History for HypView (v0.35.3e)
+=======================================
+10.02.2006 (v0.35.3e)
+ -Modified for gemlib. [ozk]
+ -Ported to gcc. [ozk]
+ -Initial CVS revision. [ozk]
+ -Many changes to fix problems with different sized fonts [ozk]
+
+17.09.2005 (v0.35.2e)
+ -ALT-E Stack lschen (Men -> Stack lschen) [GS]
+
+20.08.2005
+ -Iconifizieren des Infodialogs [GS]
+
+14.08.2005
+ -Scrollweite mit <Bild nach oben/runter> entspricht
+ <SHIFT> + <Pfeil nach oben/runter> [GS]
+ -Ctrl-Cursor hoch/links - zur vorigen Seite blaettern [GS]
+ -Ctrl-Cursor runter/rechts - zur nchsten Seite blaettern [GS]
+
+14.08.2005
+ -Ist das Dokument fuer das erste Fenster nicht mehr vorhanden, war
+ keine Benutzung von HypView mehr mglich. [GS]
+
+12.08.2005 (v0.35.2d)
+ -Ist WDIALOG nicht vorhanden, sind einige Icons der Toolbar nicht
+ bedienbar. [GS]
+ -Neue VDI.LIB, damit keine Probleme mehr mit PlainTOS und Texten
+ mit Umlauten.
+
+10.08.2005 (v0.35.2c)
+ -Der Inhalt des letzten Fensters wird beim Oeffnen des ersten Fenster
+ wieder dargestellt.
+
+09.08.2005 (v0.35.2b)
+ -Wird beim Markenpfad am Anfang '$HOME\' angeben, versucht HypView
+ die Marken vom Homeverzeichnis zuladen.
+ z.B.: MARKFILE=$HOME\MARKEN.DAT
+
+31.07.2005
+ -Fehler bei der Ausgabe der Popups unter N.AES 1.2.0 behoben. [GS]
+
+27.07.2005
+ -Bei den Marken erscheinen die Dateinamen von denen sie stammen. Dazu
+ muessen sie aber neu gesetzt werden [GS]
+
+09.04.2005
+ -Im Info-Dialog wird das Erstellungsdatum von HypView angezeigt. [GS]
+
+03.03.2005
+ -Mit dem Schluesselwort REFONLY kann bestimmt werden ob bei einem Klick
+ mit der linken Maustaste nur Verweise verfolgt werden oder auch
+ nicht-markierte Worte. [GS]
+ -Ist ein alternativer Skin geladen, konnte es beim Umschalten zum
+ "Autolocator" zu einem haesslichen weissen Fleck kommen. [GS]
+
+02.03.2005
+ -Im Info-Dialog wird neben der Programmversion nun auch relevante
+ Informationen zur aktuell Datei angezeigt. [GS]
+ -Die MagiC Dateiauswahl bekommt jetzt ein sinnvolles Dateimuster. [GS]
+
+05.02.2005 (v0.35.2)
+ -Workaround: Bug in XaAES fuehrte dazu dass HypView bei einer
+ VA_START-Meldung in eine Endlos-Schleife verfiel.
+ (In XaAES liefert wind_get(WF_OWNER) fuer den "open status" immer 0).
+
+30.01.2005 (v0.35.1)
+ -Marken implementiert: Damit ist es nun moeglich bis zu 10 "Favoriten"
+ zu speichern. Die Marken werden in der mit MARKFILE spezifizierten
+ Datei gespeichert. Es kann die gleiche Datei wie bei ST-GUIDE
+ verwendet werden, da das Format kompatibel ist. [GS]
+ -Mit dem MARKFILE_SAVE_ASK kann die laestige Frage, ob die Marken-Datei
+ gespeichert werden soll, deaktiviert werden. [GS]
+ -Bugfix: Zeichenfehler bei den Popup-Mens unter XaAES.
+ -Falls der Autolocator aktiv ist kann mittels CTRL+V Text aus dem
+ Klemmbrett eingefuegt werden.
+ -Pure C-Hilfe Protokoll (AC_HELP Meldung) wird unterstuetzt um nach
+ Schluesselwoertern zu suchen.
+ -Suche in der REF Datenbank (mittels REFLINK.TTP generiert)
+ implementiert [PD+GS].
+ Zur Zeit laesst sich nur mittels der Meldung "AC_HELP" eine Suche
+ ausloesen (also z.B. HypView in QED als Hilfe-Server anmelden und
+ dann HELP druecken wenn sich der Cursor auf einem Wort befindet.
+
+28.01.2005
+ -Bugfix: Falls ein Programm per VA_START eine Hilfeseite welche ein
+ Leerzeichen im Titel aufrufen wollte, wurde die Seite nicht gefunden
+ oder es kam gar zum Absturz. [GS]
+
+30.12.2004
+ -Mit CLIPBRD_NEW_WINDOW kann festgelegt werden ob beim Einfuegen mit
+ CTRL+V ein neues Fenster geoeffnet wird oder nicht. Bei zusaetzlichem
+ Druecken von "SHIFT" wird das Gegenteil der gewaehlten Funktion
+ ausgefuehrt.
+ -"Skin Laden" funktioniert wieder. Falls kein absoluter Pfad mittels
+ SKIN angegeben wurde, wird im Verzeichnis "Skins" danach gesucht.
+ D.h. relative Pfade beziehen sich immer auf das Verzeichnis "Skins"
+ im Verzeichnis, aus dem HypView gestartet wurde.
+ -AV_WINDOW_CYCLE aktiviert den globalen Fensterwechsel (via AVSERVER),
+ d.h. das "CTRL+W" nicht von HypView sondern vom AVSERVER erledigt
+ wird. Durch zusaetzliches Druecken von "SHIFT" wird das Gegenteil der
+ Funktion ausgefuehrt.
+
+19.10.2004
+ -File Errors werden in einer Alertbox ausgeben und nicht mehr ber
+ die Console. [GS]
+
+16.10.2004 (v0.34.1)
+ -Neues Versionsnummern Schema: die 3te Zahl steht fuer die Release
+
+14.10.2004 (v0.34)
+ -"Zurueck" im Kontext-Men. [GS]
+
+06.10.2004
+ -Wurde per VA_START ein absoluter Pfad angeben und die Datei befindet
+ sich nicht dort. So erfolgte die Auswertung der Pfadliste nicht
+ korrekt. [GS]
+
+30.09.2004
+ -Menueicon aktiviert. [GS]
+
+18.09.2004
+ -Bugfix: CTRL+V laedt jetzt wirklich die Datei SCRAP.TXT aus dem
+ Clipboard. [GS]
+ -ALT-T Inhalts-Seite zeigen (wie Inhalt-Icon, wie ST-Guide) [GS]
+ -ALT-X Indexseite zeigen (wie Index-Icon, wie ST-Guide) [GS]
+ -ALT-K Katalog laden (wie Index-Icon, wie ST-Guide) [GS]
+ -Bugfix: Erkennung der REF Datei funktionierte nicht immer. [GS]
+
+10.09.2004
+ -Gerhard Stoll interessiert sich fuer den Quellcode von HypView und
+ will das Programm erweitern. Seine Aenderungen sind mit [GS] markiert.
+ -Unterstuetzung der Ende Tasten (gibt es z.B. beim Milan). [GS]
+
+29.01.2004 (v0.33)
+ -Bugfix: ASCII Texte, die nur eine Zeile ohne CR/LF enthielten, wurden
+ nicht angezeigt.
+
+14.01.2004
+ -Bugfix: HypView ignorierte die Kapitel-Angabe "Main" fr externe
+ Referenzen. Dies fuehrte dazu, dass bei Referenzen auf andere Hypertexten
+ nicht die richtige Startseite angezeigt wurde (sichtbar bei KATALOG.HYP).
+
+23.12.2003
+ -Bugfix: Falls HYP_VIEW.CFG nicht gefunden wurde, wurde faelschlicherweise
+ versucht ein nicht existierender "Skin" zu laden.
+ -Bugfix: Die Bestimmung des Bootlaufwerks funktionierte bisher nicht.
+
+24.11.2003
+ -Der Test auf WDIALOG wurde (hoffentlich endgueltig) beseitigt.
+ -Compiler-Einstellung war beim letzten Release faelschlicherweise auf
+ 68020 eingestellt. Dadurch lief das Programm unter MagiC PC und auf
+ "einfachen" STs nicht mehr.
+ -Laut TOS.HYP fuehrt ein @ am Anfang eines te_ptext (=eines Textfelds)
+ dazu, dass der Rest als Platzhalter interpretiert wird.
+ Folge: Falls bei der Suche mit dem "Autolocator" als erstes Zeichen
+ ein @ eingegeben wird, werden alle Eingaben nicht angezeigt (die Suche
+ wird jedoch ausgefuehrt!). (MagiC ist jedoch davon nicht betroffen!)
+
+23.11.2003
+ -Der "intelligente Fuller" verschiebt das Fenster (=die obere linke Ecke
+ des Fensters) nur noch wenn das vergrsserte Fenster ausserhalb des
+ sichtbaren Bereichs zu liegen kommt. D.h. beim "Fullen" des Fensters
+ springt das Fenster nicht mehr automatisch in die obere linke Ecke
+ des sichtbaren Bereichs.
+
+17.11.2003 (v0.32)
+ -Bugfix: Im ACC-Betrieb kam es nach 2maligem ffnen zum Absturz, falls
+ kein DEFAULT Hypertext angegeben wurde.
+
+14.11.2003 (v0.31)
+ -Monochrome Bilder (=1 Bitplane) werden jetzt nicht mehr an die Anzahl
+ Bitplanes der aktuellen Aufloesung angepasst, sondern einfach monochrom
+ gelassen. Sie werden dann mittels vrt_cpyfm() wie beim Original ST-Guide
+ transparent auf den Bildschirm kopiert. (Diese Transparenz kann nicht
+ mehr mit TRANSPARENT_PICS=0 deaktiviert werden!)
+ -Bugfix: Beim Bilder Laden wurde unter Umstnden zuwenig Speicher
+ alloziert, was unter MagiC zum System-Absturz fhrte.
+ -Bugfix: Falls der intelligente "Fuller" deaktiviert wurde, jedoch
+ die automatische Fenstergrssen-Anpassung aktiviert war, wurde beim
+ Zeichensatzwechsel das Fenster auf max. Bildschirmgrsse vergrssert.
+ -Beim Zeichensatzwechsel (=CTRL+Z) wird nun sichergestellt, dass die
+ Seite gut sichtbar ist, d.h. es wird wenn ntig nach Oben gescrollt.
+
+10.11.2003 (v0.30)
+ -Intelligenteres vergrssern/verkleinern beim Zeichensatz-Wechsel
+ -Das "intelligente" vergrssern des Fensters auf die maximale Dokument-
+ grsse lsst sich nun mit dem Tag INTELLIGENT_FULLER=0 deaktivieren.
+ Dadurch wird die maximale Fenstergrsse auf Bildschirmgrsse gesetzt.
+
+09.11.2003
+ -Falls WINADJUST=0 ist, wird trotzdem beim Zeichensatz-Wechsel die
+ Fensterbreite/-hhe angepasst (="eingerastet").
+ -Zeichen, die eine Zusatz-Taste (wie CTRL, ALT) zur Eingabe bentigen,
+ lassen sich nun auch in den Autolocator eingeben.
+
+04.11.2003
+ -Bugfix: AV-Protokoll wird nun auch beim Start als ACC initialisiert.
+ -2 maliges Drcken von ESC deaktiviert und versteckt das Eingabe-Feld
+ des "Autolocator". Dadurch muss nicht mehr mit einem Mausklick das
+ Eingabe-Feld "weg-geklickt" werden.
+
+20.09.2003 (v0.29)
+ -Der Umbruch von Text-Dateien ist nun mittels "ASCII_BREAK=" in der
+ HYP_VIEW.CFG konfigurierbar. D.h. HypView bricht eine sehr lange
+ Zeile um, sobald die angegebene Anzahl von Zeichen erreicht wurde.
+ -Der Umbruch von Text-Zeilen ist erfolgt wenn mglich bei einem
+ Leerzeichen oder Tab-Zeichen. (Hallo Sascha :-))
+
+02.09.2003
+ -Bug "Endloses scrollen bei der Selektion" beseitigt
+
+29.08.2003
+ -Debugging-Ausgabe bei der Selektion entfernt :-)
+
+07.08.2003
+ -Fehler bei der Selektion entfernt
+
+04.08.2003 (v0.28)
+ -Untersttzung fr alternative Toolbars bzw. Skins eingebaut (Variable
+ SKIN zeigt auf die gewnschte RSC Datei im "Skins" Verzeichnis)
+ Gunnar Grbel hat vor einiger Zeit einige erstellt.
+
+03.08.2003
+ -Bugfix: Externe Referenzen mit Kapitelangabe funktionieren wieder.
+ -Bugfix: Ein (mittels Zurck-Button) entferntes Dokument konnte
+ beim erneuten ffnen zum Absturz fhren.
+ -History-Popup mit bis zu 12 Eintrgen eingebaut.
+
+01.08.2003
+ -Untersttzung fr externe Referenzen eingebaut (@xref Tag)
+ (=Referenzen-Popup mit bis zu 12 Eintrgen)
+
+31.07.2003 (v0.27)
+ -Unbekannte Dateien, die kein Null-Byte enthalten werden als Text
+ dargestellt.
+ -Text-Dateien, mit Zeilen lnger als 127 Zeichen werden umgebrochen.
+ -Falls eine geladene Datei mittels eines Links geladen wurde, so werden
+ folgende Dateien auch noch im realen Verzeichnis gesucht.
+ Beispiel:
+ "C:\GUIDES\ARCVIEW.HYP" ist ein Link auf "D:\ARCVIEW\ARCVIEW.HYP"
+ Wird nun auf den Link "HISTORY.TXT" geklickt, so werden folgende
+ Pfade der Reihe nach berprft:
+ C:\GUIDES\HISTORY.TXT
+ D:\ARCVIEW\HISTORY.TXT
+ HISTORY.TXT
+ $PATH + HISTORY.TXT
+
+30.07.2003
+ -Bugfix: Darstellungs-Fehler bei sehr langen Seiten/Texten beseitigt.
+ -Verbesserte System-Integration: Offene Fenster werden in das
+ "Window-Cycling" des Desktops integriert (mittels AV_ACCWINDOPEN,
+ AV_ACCWINDCLOSED).
+
+11.07.2003
+ -ASCII-Text-Erkennung: Es werden nun Dateien, die die Zeichen
+ 1-4 und 16-25 enthalten als ASCII angezeigt. (Obwohl es sich
+ korrekterweise nicht um ASCII handelt!)
+
+27.02.2003
+ -Bugfix: Falls zu einer REF Datei kein passender HYPertext vorlag,
+ kam es zum Absturz.
+
+26.02.2003 (v0.26)
+ -Untersttzung fr REF Dateien eingebaut.
+ Wird eine .REF Datei als Pfad bergeben, so wird sie geladen und
+ die entsprechende .HYP Datei angezeigt. Achtung: Es wird einfach
+ nur die Dateierweiterung abgendert und nicht der entsprechende
+ Eintrag in der REF Datei ausgewertet!
+ -Falls eine Kapitelname im HYPertext nicht existiert, so wird
+ versucht die entsprechende .REF Datei zu laden. Im Erfolgsfall
+ wird dann darin nach dem passenden Kapitel gesucht.
+
+19.01.2003 (v0.25)
+ -Verffentlichung des aktuellen Standes.
+
+18.01.2003
+ -Arbeiten am automatischen Scrollen whrend der Selektion
+ absgeschlossen. Folgende Features sind eingebaut:
+ -gleichzeitiges horizontales und vertikales Scrollen
+ -nach jedem Scroll-Schritt wird eine Pause von 50 ms gemacht.
+ Dadurch sollte das Scrollen auch auf schnellen Rechnern brauchbar
+ sein.
+ -vertikales Scrollen ist linear Abhngig von der Mausposition.
+ Das heisst, wenn die Maus weiter aus dem Fenster bewegt wird, wird
+ auch schneller gescrollt. (64 Pixel = 1 Zeile schneller)
+ -Bugfix: Falls die Katalog-Datei nicht geffnet werden kann, so
+ wird die Mausform wieder in einen Pfeil zurck gewandelt.
+ -Bugfix: Beim automatischen Anpassen der Fenstergrsse (WINADJUST=1)
+ wird nun immer die ganze Toolbar angezeigt (=minimale Fensterbreite).
+ -Verbesserungen beim Umgang mit proportionalen Fonts. (Das Fensterraster
+ wird nun als Durchschnitt der Zeichenbreiten von ASCII 32 bis ASCII 154
+ berechnet.)
+ -Bugfix: Es wird nun immer der absolute Pfad einer Datei ermittelt.
+ (Also auch fr Dateien, die sich im aktuellen Verzeichnis befinden.)
+ -Das Block-Ende einer Selektion kann nun jederzeit mit SHIFT-Klick
+ verndert werden.
+ -Rechtsklick ffnet ein Popup mit den Block-Funktionen.
+ -Blockfunktionen:
+ -Speichern von HYP und ASCII Texten im ASCII Format (auch ber die
+ Toolbar zugnglich).
+ -CTRL+A whlt den ganzen geladenen Text aus
+ -CTRL+C kopierte den selektierten Block ins Clipboard. Falls kein
+ Text selektiert ist, wird der ganze Text kopiert.
+ -CTRL+V ladet die Datei SCRAP.TXT aus dem Clipboard. (wie ST-Guide)
+
+xx.01.2003
+ -Diverse Arbeiten am automatischen Scrollen whrend der Selektion.
+
+31.12.2002
+ -Bugfix beim automatischen Scrollen. Keine "Lcher" mehr vorhanden.
+
+18.12.2002
+ -Verbesserungen bei der Selektion.
+
+17.12.2002
+ -Autolocator: Leerzeichen am Anfang der Eingabe werden ignoriert.
+ -Selektion ist nun auch mit proportionalen Zeichenstzen kompatibel.
+ Bei Bitmap-Zeichenstzen berechnet anscheinend die Funktion
+ vqt_extent() die Grsse einer leeren Zeichenkette (="") falsch,
+ falls kursiv als Attribut definiert ist.
+
+16.12.2002
+ -Selektion wieder entfernt. Beginn einer neuen Implementation.
+ -NEU: Automatisches Scrolling in horizontaler Richtung beim Selektieren.
+
+06.12.2002
+ -Bugfix: LINKEFFECT wird nun genau gleich wie bei ST-Guide behandelt.
+ D.h. der angegebene Effekt wird als "zustzlicher" Text-Effekt mit dem
+ gerade aktuellen Verknpft.
+ -Bugfix: Die Icon-Position beim Iconifizieren wird nun immer neu einge-
+ stellt.
+ Dadurch klappt's auch mit ICFS bzw. Iconify-Servern, die
+ wind_get(WF_ICONIFY) nicht untersttzen.
+
+04.12.2002
+ -Da ich aus zeitlichen Grnden kaum zum Programmieren kommen,
+ verffentliche ich den aktuellen Stand.
+
+29.11.2002
+ -automatisches Scrollen in vertikaler Richtung beim Selektieren.
+
+27.11.2002
+ -Bugfix: Flschlicherweise wurden beim Klick auf "Zurck" Dateien
+ geschlossen, die evtl. noch bentigt wurden.
+ (Z.B. "Katalog.hyp" -> "TOS.hyp" -> "Katalog.hyp" -> zurck
+ -> zurck -> CRASH!!!)
+
+26.11.2002
+ -Einfache Text-Selektion per Maus eingebaut.
+ Folgende "Features":
+ -Funktioniert mit binr, ASCII und HYP Dateien
+ -Kein automatisches Scrollen am Fensterrand
+ -Keine Bercksichtigung der Text-Attribute (Betrifft HYP)
+ -Kein "Fortsetzen" der Selektion mittels Shift-Taste.
+ -Noch KEINE Aktionen eingebaut (also nur selektieren mglich).
+
+24.11.2002
+ -Bugfix: Speicherschutzverletzung bei AV_PROTOKOLL "beseitigt". D.h.
+ HypView geht davon aus, dass bei der Anwort mit VA_PROTOSTATUS der
+ Zeiger auf den eigenen Namen nicht mehr bentigt wird und daher
+ freigegeben werden kann. Ein Desktop, der danach trotzdem auf diesen
+ Zeiger zugreift wird immer noch "abschmieren". Selberschuld!
+
+20.11.2002
+ -Bugfix: Zugriff auf ungltigen Zeiger beseitigt. (Speicherschutz)
+
+18.11.2002
+ -kleinere Bugs beseitigt, die sich eingeschlichen haben.
+
+17.11.2002 (v0.20)
+ -Autolocator-Funktionalitt eingebaut.
+ Dies funktioniert mit allen Formaten (=HYP, ASCII, binr).
+ Funktionsweise:
+ -Such-Text eingeben
+ -RETURN startet die gleiche Suche erneut
+ -ESC lscht den eingegebenen Text
+ -Einfache Speicherfunktion fr HYP, welche die aktuelle Seite als ASCII
+ speichert.
+
+13.11.2002
+ -Nach der internen Umstellung luft nun (anscheinend) alles so wie in der
+ vorherigen Version.
+ -Die Mult-Window-Bugs sind nun hoffentlich behoben.
+
+02.10.2002
+ -Sortier-Reihenfolge der HISTORY gendert (=neuste Eintrge zuoberst)
+ -Allgemeine berarbeitung begonnen. (Da sich die Abstrze beim Gebrauch
+ des "Multi-Window-Features" nicht so einfach beseitigen liessen.
+ = strukturelle Schwchen)
+ -Die Standard-Pfadliste wird nun beim Starten automatisch an das Start-
+ laufwerk angepasst. (z.B. wird aus C: M: falls von M: gebootet wird.)
+ Dies betrifft nur die Standard-Pfade! D.h. es wird diese nderung nur
+ vorgenommen, falls keine andere Pfadliste aus der CFG geladen wurde.
+ -Bugfix: beim seitenweise Scrollen per Maus wurde immer eine Zeile
+ bersprungen.
+ -Bugfix: die Fileselect-Box im Fenster ist wieder zurck :-)
+ -Bugfix: Falls mehrere Fenster offen waren, geriet die "History"
+ manchmal durcheinander, was sogar zum Absturz fhren konnte.
+ -Bugfix: Memory-Leck bei der Anzeige von ASCII-Dateien beseitigt.
+
+24.09.2002 (v0.17)
+ -Bugfix: Unntige/Fehlerhafte Mfree-Aufrufe beseitigt.
+ -Bugfix: Datei-Handle wurde nicht geschlossen, falls die Datei beim
+ "zurck"-Bewegen erneut geffnet werden musste.
+ -Bugfix: ein zu ffnendes Fenster hat nun immer mindestens 1 Zeile und
+ 5 Kolonnen. Dadurch kann ein Absturz unter MagiC verhindert werden,
+ da kein "zu kleines" Fenster erstellt wird.
+ -Bugfix: Speicherschutz-Problem unter MiNT beseitigt (zumindest falls es
+ keine anderen mehr hat).
+ -Bugfix: Als ACC wurde nicht auf die AP_TERM Meldung reagiert.
+
+23.09.2002 (v0.16)
+ -Automatisches Anpassen der Fenster berarbeitet. Es sollte nun nicht mehr
+ passieren, dass Fensterteile teilweise ausserhalb des sichtbaren Bereichs
+ zu liegen kommen.
+ -Bugfix: Falls eine gerade offene Datei nochmals geffnet wurde, wurde
+ in der "History" die falsche Seitennummer gespeichert.
+ -HypView berprft nun auf Wunsch (in der Konfiguration CHECK_TIME=1)
+ vor dem erneuten Zugriff auf Dateien, ob sich diese gendert haben und
+ ladet sie erneut. (Praktisch beim Schreiben von Hypertexten und beim
+ Erstellen des KATALOG.HYP)
+
+18.09.2002
+ -HypView luft nun auch falls die Zeilen von HYP_VIEW.CFG mit LF (=Unix)
+ oder auch nur mit CR (=Mac) abgeschlossen sind.
+ -Bugfix: Zeichenstze unterschiedlicher Grsse wurden nicht korrekt
+ verarbeitet. Dies fhrte zu "berreste" beim Scrollen.
+
+16.09.2002
+ -Neues Schlsselwort in der Konfiguration: DEBUG_FILE
+ Alle Fehlermeldungen, die normalerweise auf STDERR (=bei MagiC ist das
+ der Bildschirm) knnen auf eine beliebige Datei umgeleitet werden.
+ Dadurch lsst sich meine MiNT-Installation auch berreden die Fehler
+ anzuzeigen.
+ -Bugfix: Beim Starten als ACC wollte HypView die Parameter auswerten,
+ obwohl keine existieren bzw. die Daten ungltig sind.
+ -Bugfix: Es konnte vorkommen, das der Hilfe- und der Index-Button
+ anwhlbaren, obwohl es diese Seiten nicht gab.
+ -Abfrage auf WDIALOG vorlufig ausgebaut. (Hallo MiNTler :-))
+ -Bugfix: Falls die HOME-Variable nicht mit einem '\' oder '/' ab-
+ geschlossen war, wurde auf einen ungltigen Pfad zugegriffen und die CFG
+ nicht gefunden.
+
+15.09.2002 (v0.15)
+ -Popups, die im Hypertext per @previous und @next in den HYP integriert
+ sind werden nun auch geladen und dargestellt. (Vorher blockierten diese
+ die Navigation mittels "Vorwrts" und "Rckwrts".)
+ -Untersttzung von WINPOS: Bugs beseitigt und verbessert (=es ist nun
+ nicht mehr mglich das Fenster so zu positionieren, dass die Fenster-
+ elemente nicht mehr bedienbar sind).
+ -"CTRL+Klick geht nicht immer"-Bug beseitigt: 0 Byte am Stringende
+ vergessen :-)
+ -Falls in einem Hypertext keine Hilfe-Seite mittels @help definiert ist,
+ wird nach dem Kapitel "Help" gesucht.
+ -Bugfix: Die Seite, die mittels @default in einem HYP definiert wird,
+ wurde flschlicherweise immer als Startseite benutzt.
+ -Bugfix: Ein Klick auf ein @limage fhrte zum Absturz.
+
+13.09.2002
+ -Falls eine VA_START Meldung ankommt, die keine Datei als Parameter
+ enthlt, so wird dies als "Aufwecken" von HypView interpretiert.
+ Falls mit DEFAULT=xy eine Datei definiert wurde, so wird diese geffnet,
+ sonst wird der File-Selector geffnet.
+ -Bugfix: Als ACC gestartet konnte es vorkommen, dass HypView auf ein
+ nicht mehr existierendes Fenster zugriff, was natrlich zum Absturz
+ fhrte.
+
+04.09.2002 (v0.14)
+ -Untersttzung fr "echte" Page-Up und Page-Down Tasten (wird von
+ MagiCMac untersttzt).
+ -Falls kein Katalog mittels "KATALOG=xy.hyp" definiert ist, dann lsst
+ sich das Katalog-Icon nicht mehr anwhlen.
+ -Bugfix: Bilder wurden beim zeilenweisen Scrollen "abgeschnitten".
+
+30.08.2002 (v0.13)
+ -Obwohl es noch einiges zu implementieren gbe, verffentliche ich diese
+ "Etape".
+
+22.08.2002
+ -Links vom Typ SYSTEM_ARGUMENT, REXX_SCRIPT und REXX_COMMAND (=4-6) werden
+ nun folgendermassen behandelt:
+ -SYSTEM_ARGUMENT und REXX_SCRIPT fhren zu einer AV_STARTPROG Meldung
+ an den AV-Server.
+ -REXX_COMMAND fhrt zum Senden einer VA_START Meldung an den Host, der
+ mittels @hostname im Hypertext gesetzt wurde.
+ -Bei allen drei Typen wird vor dem Versenden der Meldung versucht einen
+ absoluten Pfad auf eine existierende Datei zu erstellen. D.h. als Pfad
+ wird der Zugriffspfad des Hypertexts genommen und das "Kommando" als
+ Dateinamen interpretiert. Wird eine solche Datei gefunden, so wird
+ die Meldung mit dem kompletten Zugriffspfad versendet. Ansonsten wird
+ nur das "Kommando" versendet. Z.B. findet QED dadurch die Dateien.
+ => Beispiel in TEST.HYP/Kommunikation
+ -Interne-Representation der Hypertext-Seiten gendert. Dadurch wurde die
+ Anzeige und das Scrollen beschleunigt. Trotzdem scheint das Zeilenweise-
+ scrollen beim ST-Guide schneller zu gehen.
+
+21.08.2002
+ -Weitere Anpassung des TEST.HYP
+ -NEU: Klick auf @alink Verweise ffnen nun ein neues Fenster. Es gibt aber
+ kaum Hypertexte die das bisher nutzen, da ST-Guide bekanntlich nur 1
+ Fenster verwalten kann. Evtl. ndert sich das mit HypView?
+ -Links vom Typ 5 (REXX_SCRIPT) werden wie Typ 4 und 6 einfach an den
+ AV-Server weitergegeben.
+ -Links vom Typ 7 (QUIT) fhren zum Schliessen des aktuellen Fensters.
+ -Links vom Typ 4-6 werden zuerst als Pfade interpretiert und im aktuellen
+ Verzeichnis gesucht. Falls diese Datei nicht existiert, wird statt dessen
+ der unvernderte Link an den AV-Server bergeben.
+ Damit klappt es nun auch mit externen Verweisen auf nicht-Texte (z.B. auf
+ eine Batch-Datei im aktuellen Verzeichnis => siehe TEST.HYP).
+
+20.08.2002
+ -Test-Hypertext berarbeitet und mit neuen Seiten fr nicht-existierende
+ Features ergnzt. Jetzt geht's an's implementieren.
+
+27.07.2002
+ -Bugfix: Falls beim schliessen eines Hypertextes noch ein Popup-Fenster
+ offen war beendete sich das Programm nicht.
+
+14.07.2002 (v0.12)
+ -Funktionsnderung: CTRL+UP/DOWN (=Strg und Pfeilhoch/-runter) bewirken
+ nun wie SHIFT+UP/DOWN ein seitenweises Scrollen des Fensters.
+ Dadurch funktioniert die "Page-Up/Down" Taste von PC-Tastaturen auch
+ wie zu erwarten ist (und auch von anderen GEM-Programmen praktiziert
+ wird). Dadurch weicht die Bedienung von ArcView von der ST-Guide
+ blichen ab.
+ -Bugfix: Tastatur-Funktionen, die fr binr-/ASCII-Texte nicht verfgbar
+ sind, fhren nicht mehr zum Absturz.
+ -NEU: Falls CTRL whrend dem Klick auf einen Link gedrckt gehalten
+ wird, dann wird dieser in einem neuen Fenster dargestellt.
+ (Achtung: Die Datei wird erneut geladen! => doppelter Speicherverbrauch!)
+ -Falls der Zeichensatz gendert wurde (CTRL+Z), werden alle offenen
+ Dokumente aktualisiert und den entsprechenden Fenster eine Redraw-
+ Meldung geschickt.
+ -Links des Typs 6 (REXX_COMMAND) werden wie Typ 4 (SYSTEM_ARGUMENT)
+ behandelt. Dadurch wird das ffnen einer Datei mit einem speziellen
+ Viewer dem AV-Server berlassen (der also den passenden Viewer suchen
+ und starten muss).
+ -NEU: In der Konfigurationsdatei kann mittels VA_START_NEWWIN angegeben
+ werden, wie auf eine VA_START-Meldung reagiert wird (0=kein neues Fenster
+ ffnen;1=evtl.;2=immer)
+ -Bugfix: Ein iconifiziertes Fenster wurde beim Laden einer neuen Datei
+ nicht automatisch "deiconifiziert".
+
+13.07.2002
+ -Bugfix: Das Index-Icon ist nur noch anwhlbar falls auch wirklich eine
+ Index-Seite im Hypertext enthalten ist.
+ -Bugfix: Fehler in der Cache-Verwaltung beseitigt. Es wurde auf ein Hyper-
+ text zugegriffen, der nicht mehr komplett im Speicher war.
+
+29.06.2002 (v0.11)
+ -Bugfix: ACC Betrieb endete meist mit einem Bus-Fehler.
+ -Bugfix: Hyp-Header wurden unntigerweise mehrmals geladen, weil nicht
+ bemerkt wurde das die Datei schon geffnet ist. (=>Cache)
+
+26.06.2002
+ -Bugfix: Falls keine Default-Datei angegeben wurde, gab es einen Crash.
+ -Neu: System-Argumente werden per AV_STARTPROG an den AV-Server bergeben.
+ (D.h. man kann nun z.B. den KATALOG.HYP erneuern)
+ -Neu: Falls eine Datei aus einer anderen geladen wird (z.B. Verweis auf
+ HISTORY.TXT), dann wird versucht die Datei im Pfad der geffneten Datei
+ zu ffnen. (Man sollte nicht "." in die Pfadliste aufnehmen, da sonst
+ HypView Dateien in seinem (!) Verzeichnis sucht.)
+ -Bugfix: Der Link-Effekt wurde erst ab 16 Farben bernommen.
+
+25.06.2002 (v0.10)
+ -Bugfix: Speicherleck beim wechseln zwischen Dateien gestopft.
+ -Cache-Funktion wieder implementiert.
+ -Bugfix: "Speicher-Schiesser" beseitigt.
+ -Bugfix: Wechsel zwischen HYP-Dateien und anderen Formaten klappt
+ wieder (=> Cache-Leerungs-Bug beseitigt)
+ -Popups funktionieren wieder.
+ -Zeichensatz-Wechsel (FONT <-> XFONT) mittels CTRL+Z klappt wieder.
+ -Bugfix: TOS.HYP luft nun wieder.
+ -Bugfix: Bestimmen der Klickposition funktioniert nun auch mit Hyper-
+ texten, die Bilder enthalten und mit HCP < 3 erstellt wurden.
+ (="Chrysalis-Bug")
+
+24.06.2002
+ -Navigation mittels Links wieder implementiert
+
+20.06.2002 bis 22.06.2002
+ -HYP-Format wird nun wieder geladen und angezeigt. (Nachwievor nach
+ der alten Methode)
+ -Navigation mittels Iconleiste und Tastatur wieder eingebaut.
+
+19.06.2002
+ -Bugfix: Ein CTRL+ALT+HOME fhrt nicht mehr zum iconifizieren des
+ Fensters.
+ -Die Konfiguration wird nun wieder aus der Datei geladen.
+ Dabei habe ich einige Konfigurations-Punkte umgetauft und ein paar neue
+ eingefhrt (TEXT_COLOR, BIN_COLUMNS, ASCII_TAB, LINK_EFFECT).
+
+16.06.2002
+ -Neu: Untersttzung fr ASCII Texte mit Atari-/PC-,Mac- und Unix-Zeilen-
+ enden. (Es knnen nur Dateien geladen werden, die vollkommen in den
+ Arbeitsspeicher passen.)
+ Ein Text wird als ASCII Text erkannt falls er keine Zeichen unter dem
+ Wert 32 enthlt (mit Ausnahme von CR, LF und TAB).
+ -Binrdateien haben eine fixe Zeilenlnge (zur Zeit 76, wird aber spter
+ konfigurierbar).
+ -Beschleunigtes Scrolling, durch das ich mittels zustzlichem Speicher
+ eine Tabelle mit allen Zeilen-Anfnge erstelle.
+
+15.06.2002
+ -Komplette berarbeitung begonnen.
+ Das Konzept wird nun modularisiert, d.h. es werden in Zukunft mehr als
+ nur HYP Dateien untersttzt. (Binr, ASCII, HYP fr den Anfang)
+ -Laden und Darstellen von Binrendaten klappt. (0-Zeichen werden als
+ Leerzeichen ausgegeben)
+ -Untersttzung fr mehrere Fenster.
+
+11.06.2002
+ -Bugfix: Beim Berechnen der maximalen Seitenhhe wurde die Hhe von
+ "@image" nicht korrekt bercksichtigt.
+ -Bugfix: @limage Tags werden nur noch interpretiert, falls der
+ Hypertext mit dem HCP Version 3 (=aktuellste) compiliert wurden.
+ Dadurch wird die Darstellung von "alten" Hypertexten verbessert.
+
+09.06.2002 (v0.07)
+ -HypView bildet nun nicht mehr die Fensterbreite als Minimum von
+ @width und der ermittelten Kolonnenanzahl. (Anscheinend ist das
+ wieder einmal ein Fehler in der ST-Guide Dokumentation.)
+ -Bugfix: Falls WINADJUST=0 war und keine Fensterposition mittels
+ WINPOS definiert wurde, wurde das Fenster in maximaler grsse
+ geffnet, was beim Scrollen meistens zu abgeschnittenen Texten
+ fhrte. (Hallo Thomas! Ich habs gefunden :-))
+ -Bugfix: Manchmal wurden falsche Text-Attribute beim Neuzeichnen
+ benutzt.
+ -Bugfix: Bei der Suche nach der Seite wird nun Gross-/Kleinschreibung
+ ignoriert.
+ -Bugfix: Bei von Aussen bewirkten Seitenwechsel (z.B. Hilfe-Aufruf aus
+ einem anderen Programm) wurde immer der Cache-Speicher gelscht und
+ ein History-Eintrag vermerkt, auch wenn der Sprung innerhalb der
+ gleichen Datei war und die Zielseite schon dargestellt wurde.
+
+05.06.2002 (v0.06)
+ -Falls eine Datei nicht gefunden wird, wird der Name in der Fehler-
+ meldung erwhnt.
+ -Gunnar hat die 16 Farben-Version berarbeitet.
+
+04.06.2002
+ -Problem entdeckt: Bei den Konfigurationsvariablen wie z.B. PATH,
+ KATALOG, DEFAULT darf kein Kommentar in der gleichen Zeile stehen,
+ da sonst die Daten falsch interpretiert werden. Also Vorsicht!
+
+02.06.2002
+ -Gunnar Grbel hat sich die Mhe gemacht die HypView-Resource einwenig
+ an die modernen Zeiten anzupassen und hat ein paar schne Icons in
+ 256 Farben gestaltet. (Vielen Dank!)
+ -Ich habe die Icons rasch in 16 Farben konvertiert.
+ -Bugfix: Das Icon fr das History-Popup wurde aktiviert, obwohl diese
+ Funktion noch nicht verfgbar ist.
+
+25.05.2002
+ -ACC Behandlung gendert:
+ CTRL+Q als ACC: Schliessen aller Fenster
+ als APP: Beenden des Programmes
+ AP_TERM : Beendet immer das Programm!
+
+23.05.2002 (V0.05)
+ -Tastatur-Wiederholung wird nun beim Auswerten deaktiviert.
+ Dank Richard klappt dies sogar auf einem sauberen Weg (wenn mglich).
+ -Die Hintergrundfarbe wird nur noch bercksichtigt, falls mindestens
+ 16 Farben zur verfgung stehen. (=Falls man einmal im S/W Modus startet,
+ kann man doch noch Hypertexte ansehen.)
+ -Es ist nun mglich HypView auch zu beenden falls es als ACC gestartet
+ wurde. --> Vorsicht unter SingleTOS!!
+ -Es wird nun immer die selbst ermittelte Zeilenbreite verwendet auch falls
+ das Header-Tag @width existiert. Der ST-Guide macht das auch so.
+ (=> Hypertext Dokumentation ist da fehlerhaft!)
+ -Bugfix bei der True-Color Anpassung von grossen Bildern beseitigt.
+ -Bilder werden nun wie beim ST-Guide "transparent" ausgegeben.
+ Falls die Darstellung mit 16 bis 256 Farben erfolgt verursacht dies
+ mehr Aufwand als ohne Transparenz!
+ Das Feature kann mit "TRANSPARENT_PICS=0" deaktiviert werden.
+
+08.05.2002
+ -Minimale Verbesserung bei der True-Color Konvertierung (=nur noch 15
+ Mono-Bitmaps mit vrt_cpyfm())
+
+04.05.2002
+ -True Color Untersttzung vollstndig umgeschrieben. Nun werden alle
+ einzelnen Farben extrahiert und als Monochrombitmap mit vrt_cpyfm()
+ in das True Color Bild geschrieben.
+ Dies ist zwar langsam, funktioniert jedoch auf allen Grafikkarten?!
+ -Bugfix bei der Parameterbergabe (Dateiname - Kapitelname).
+ Ausserdem wird nun auf ".HYP " (nicht nur "HYP ") getestet um den
+ Kapitelnamen zu finden.
+
+01.05.2002 (V0.03)
+ -CTRL+I zeigt die Versionsnummer von HypView an.
+ -HYP-View luft nun endlich als ACC! (Das Programm verhlt sich prinzip-
+ iell genau gleich. D.h. ich treffe keine Sicherheitsmassnahmen um die
+ Lauffhigkeit unter TOS sicherzustellen!)
+
+30.04.2002
+ -Wie ich vernehmen konnte, klappt's nun mit der NOVA-Kompatibilitt,
+ aber mit der Milan- und der Eclips-Grafikkarte luft's noch nicht :-(
+ -Falls kein Default-Hypertext angegeben wurde (DEFAULT=xy), dann wird
+ die Fileselect-Box aufgerufen.
+ Mittels CTRL+O kann sie jederzeit erneut aufgerufen werden.
+ Auch das Icon zum Laden der Datei ist jetzt aktiv.
+ -Bugfix: Falls eine Datei schon geffnet/geladen wurde, konnte es
+ vorkommen, dass bei einem erneuten Verweis auf diesen Hypertext
+ nicht bemerkt wurde, dass er schon im Speicher ist. (=> doppelt
+ geladen)
+ -Kommandozeile, VA_START- und Drag&Drop-Parameter:
+ -Falls die ersten 3 Zeichen "*:\" sind, so werden diese bersprungen.
+ (Nach ST-Guide-Konvention wird dieses Format verwendet, falls das
+ Programm den absoluten Pfad einer Datei nicht weiss.)
+ -Am rechten "Parameter-Rand" wird nach einem Kapitelnamen gesucht
+ -Der Rest wird als Pfad angesehen. Konnte die Datei nicht geffnet
+ werden, so wird versucht mit Hilfe der PATH Variable die Datei
+ zu finden.
+ Benennt man nun HYP_VIEW.APP in ST-GUIDE.APP um und lsst es laufen
+ (da es noch nicht als ACC luft), so schicken alle ST-Guide-kompatiblen
+ Programme ihre Hilfe-Anfragen an HYP-View!
+ -Aus historischen Grnden werden die Kapitelnamen mit einem ' '
+ (=Leerzeichen) vom Pfad/Dateinamen getrennt. Der original ST-Guide
+ interpretierte also ab dem ersten Leerzeichen alles als Kapitelnamen.
+ Dies fhrte dazu, dass der ST-Guide nicht mit Leerzeichen im Pfad
+ zurechtkam.
+ Um nun kompatibel zu bleiben und trotzdem Leerzeichen im Pfad/Dateinamen
+ zu erlauben sucht HYP-View nicht einfach nach einem Leerzeichen, sondern
+ nach der Datei Extension "HYP" gefolgt von einem Leerzeichen. Wird also
+ die Zeichenfolge "HYP " (Gross-/Klein-Buchstaben ist egal) im Pfad
+ gefunden, so wird der Rest als Kapitelnamen interpretiert.
+ ==> Also Achtung: Keinen Pfad erstellen, der auf dieses Muster passt,
+ da die darin enthaltenen Hypertexte nicht gefunden werden knnen!
+
+28.04.2002
+ -nderungen am True-Color Workaround.
+ -Externe Konfiguration ber die HYP_VIEW.CFG erweitert:
+ -WINPOS erlaubt nun Breite und Hhe (in Zeichen!)
+ -WINADJUST aktiviert/deaktiviert die autom. Fenstergrssen-Anpassung
+ -BACKCOL erlaubt das Einstellen der Hintergrundfarbe.
+ (im Gegensatz zum ST-Guide werden die Bilder nicht transparent
+ gezeichnet.)
+ -Ein paar Kommentare zu den verschiedenen Variablen eingefgt.
+ -Bugfix: Absturz falls kein GDOS installiert war.
+ -Datei-Existenz wird nun mittels Fopen/Fclose berprft anstatt mit
+ Fxattr. Damit luft HYP-View auch unter Single-TOS (zumindest unter
+ TOS 4.04 habe ich kein Problem bemerkt).
+
+27.04.2002
+ -Anscheinend klappt's mit dem True-Color Workaround nicht.
+ -Bugfix: Da die @limage-Definition anscheinend nicht ganz rckwrts-
+ kompatibel ist (was sich beim NOVA-Hypertext herausstellte), werden
+ nun Bilder mit der Breite = 1 Zeichen als @limage Bilder interpretiert.
+ Dadurch sollte es keine Probleme mit Hypertexten vor dem 19.04.1995
+ mehr geben.
+ -Tests haben gezeigt, dass HYP-View die Bilder von Hypertexten, die
+ mit dem HCP vor dem 19.04.1995 erstellt wurden, nicht 100% an der
+ gleichen stelle wie beim ST-Guide anzeigt. (=HYP-View: 1 Pixel weiter
+ unten)
+
+26.04.2002
+ -Nachdem ich auf meine "Alpha-Preview" einige Reaktionen erhalten habe,
+ stellte sich auch heraus, dass es Probleme mit verschiedenen Grafik-
+ karten gibt unteranderem: NOVA und die im Milan eingebaute.
+ Der Fehler liegt wahrscheinlich daran, dass diese die Little-Endian
+ Darstellung benutzen (=also die auf dem PC gebruchliche). Daher habe
+ ich einen weiteren Workaround eingebaut.
+ -Neues Schlsselwort in der Konfigurationsdatei: LITTLEENDIAN=1
+ aktiviert die Little-Endian Darstellung bei Grafikkarten. (Ich weiss,
+ dass das keine gute Lsung ist. Aber evtl. luft's so auf die schnelle!)
+
+21.04.2002
+ -Eine "busy bee" zeigt nun, dass gerade eine Seite geladen wird.
+ Dies ist vorallem wichtig beim langen Laden des TOS.HYP Indexes :-)
+ -Wie ich bei Tests mit dem HCP erfahren musste, werden nur Bilder
+ mit 1 oder 4 Ebenen (=monochrom und 16 Farben) untersttzt, dadurch
+ verringert sich der Aufwand fr mich: Ich muss nur eine Routine
+ schreiben, die 4 Planes in 1 Plane konvertiert.
+ -Falls zuwenig Farben zur Darstellung der Bilder im Original vorhanden
+ sind, wird das gleiche Verfahren wie beim ST-Guide angewendet:
+ Alle Farben bis auf Weiss und Hellgrau werden Schwarz gefrbt.
+ -Falls bis zu 8 Ebenen (=256 Farben) vorhanden sind, werden die Bilder
+ "expandiert".
+ -Rudimentre (=usserst schlechte) Routine, die Bilder ins Gerte
+ abhngige True-Color Format konvertiert. (Bisher lediglich auf meinem
+ Falcon in High-Color (16Bit) getestet.)
+
+20.04.2002
+ -Mit der Tastenkombination CTRL+Z kann zwischen den 2 Zeichenstzen
+ (FONT und XFONT) gewechselt werden.
+ -Bugfix: Beim Bestimmen der Fensterbreite wurden flschlicherweise
+ Linienbefehle als Text und als Linien interpretiert, was je nach
+ Anzahl Linien zu einer unntig grossen Fensterbreite fhrte.
+ -Die Einstellungen werden nun aus der Datei HYP_VIEW.CFG geladen.
+ Damit lassen sich endlich die Einstellungen "von Aussen" verndern.
+
+18.04.2002
+ -Untersttzung von Popup-Texten.
+ Verbesserungen gegenber dem ST-Guide:
+ - Popup in einem eigenen Fenster (=ohne Randelemente), jedoch
+ Applikations-modal.
+ Dadurch bleibt die Menuzeile aktiv und die Ausgabe anderer
+ Programme wird nicht blockiert.
+ - Popups knnen auch Grafik-Objekte und Bilder enthalten.
+ (Dummerweise entfernt der HCP die Objekte aus den "pnode"s,
+ da der ST-Guide dies nicht verkraftet. Abhilfe: man muss ein
+ normaler Eintrag (="node") erstellen und nach dem compilieren
+ mit HCP den Header von Hand anpassen!)
+ - Die Grsse ist nicht beschrnkt. Es werden aber keine Slider
+ angezeigt, falls das Popup grsser als der ganze Bildschirm
+ ist. => Zu grosse Popups werden nicht ganz angezeigt.
+ (aber trotzdem besser als die 12 Zeilen mit 60 Zeichen, die
+ der original ST-Guide bietet)
+
+13.04.2002
+ -Nun kann man zur Anzeige auch proportionale Zeichenstze verwenden.
+ Die Darstellung ist dabei (wie schon bei den quidistanten Zeichen-
+ stzen) 100% ST-Guide kompatibel.
+ -Probleme bereiten die kursiven Texte, da zur Berechnung der "Klick-
+ Position" die Breite jedes Zeichens genommen wird. Und nicht etwa
+ die Breite der einzelnen Worte. Dadurch, kann die genaue Position
+ der angeklickten Stelle nicht bestimmt werden!
+ Dieses Problem hat aber der "echte" ST-Guide auch schon!
+ -Falls sich an der angeklickten Position nichts befindet, wird das
+ darunterliegende Wort ermittelt und an eine Pseudo-Suchmaschine
+ bergeben.
+
+11.04.2002
+ -Nach tagelanger Suche, habe ich endlich herausgefunden, warum die Titel-
+ Grafik des "Chips'n'Chips" Hypertextes falsch dargestellt wurde:
+ Grafiken drfen auch grsser als die 65 KB sein. Die wahre grsse muss
+ aber mit Hilfe des "Next" Wertes berechnet werden.
+ D.h. "Next" enthlt das High-Word der Lnge der entpackten Daten.
+ Etwas kompliziert formuliert. Wer also genau wissen will wie das geht,
+ kann bei mir nachfragen.
+
+07.04.2002
+ -Bugfix: Das Anpassen der Fensterbreite und Hhe bercksichtigte
+ nicht die aktuelle X/Y Position.
+
+12.03.2002
+ -GetLink() korrigiert. (Nach wie vor keine Untersttzung fr
+ proportionale Zeichenstze)
+ -Beim Anzeigen einer neuen Seite springt das Fenster nicht stndig
+ in die obere linke Ecke. D.h. es wird nur noch Breite und Hhe
+ angepasst.
+ -Die wichtigsten Tastenkrzel zum Navigieren im Hypertext implementiert.
+
+Nachdem ich umgezogen bin, hatte ich endlich wieder Zeit um an meinem
+Programm zu basteln:
+
+
+11.03.2002
+ -Die 1. Plane aller Bilder wird nun korrekt dargestellt. Das bedeutet,
+ dass man mit HypView monochrome Hypertexte ansehen kann.
+ Bei Farbbildern kann man teilweise nur erahnen, was dargestellt wird.
+ -Der Index- und der Katalog-Button haben nun ihre Funktion erhalten.
+ (Index springt zur Seite mit dem Namen "Index" und Katalog ffnet die
+ Datei "KATALOG.HYP")
+
+05.03.2002
+ -Externe-Referenzen funktionieren nun auch.
+ -History-Eintrge knnen nun auf andere Dateien zeigen.
+ -Falls die Datei nicht im aktuellen Verzeichnis gefunden wird, so wird
+ noch in den angegebenen Suchpfaden gesucht.
+
+03.03.2002
+ -Nun kann man auch mit Mausklicks auf Links durch den Hypertext "browsen"
+ wobei das anzeigen von externen Referenzen und Popups noch nicht klappt
+ und einfach mit einer Meldung quittiert wird.
+ Das ganze muss noch etwas umstrukturiert werden!
+ -Probleme bei der History, falls sich der Pfad gendert hat.
+
+02.03.2002
+ -Die Reihenfolge der Seiten (=interne Vernetzung) wird nun beim Blttern
+ bercksichtigt. Falls es in eine Richtung nicht mehr weitergeht, so
+ wird der entsprechende Richtungspfeil versteckt.
+ -Ich habe provisorisch die Icons vom ST-Guide bernommen. Schliesslich
+ soll spter einmal jede seiner Funktionen bernommen werden.
+
+28.02.2002
+ -Die Anzeige klappt nun. Probleme bereiteten mir die "@limage" Bilder.
+ Die Anzeige basiert nun auf folgenden Annahmen:
+ Alle Grafikobjekte ("image","limage","box","line","rbox") befinden
+ sich am Anfang der entpackten Daten.
+ Danach befindet sich der eigentliche Text (inkl. Textattribute und
+ -Bisher funktioniert erst das vorwrts und rckwrts Blttern ohne die
+ Reihenfolge zu beachten, also Node 0,1,2,...
+
+27.02.2002
+ -Bugfix: Bei der Verwendung von Textattributen wurde nicht beachtet, dass
+ je nach Effekt der Text breiter wurde (z.B. Italic).
+
+16.02.2002 bis 23.02.2002
+ -berarbeitung der Anzeigeroutinen
+ -Es wird bei jedem Redraw der ganze Hypertext neu gezeichnet
+ ==> nicht besonders schnell!
+ -Probleme mit "limage" bestehen noch.
+ -Bei Bildern wird bisher nur die 1. Plane dargestellt (=kein Dithern,
+ keine farbigen Bilder)
+
+15.02.2002
+ -Arbeiten am "GEM-Gewand": Texte werden nun in einem Fenster dargestellt.
+ Noch keine Grafiken implementiert.
+
+30.01.2002
+ -Kleine Umstrukturierung, damit die Routinen wie eine Bibliothek
+ zu einem anderen Programm dazugelinkt werden knnen.
+
+==> jetzt muss das ganze in eine GEM-Applikation "gestrickt" werden.
+
+
+29.11.2001
+ -Die HYP-Laderoutine neu geschrieben:
+ -HYP_DOCUMENT enthlt nun die Indextabelle sowie Zusatzinfos
+ (Autor, Version, ...) und natrlich der Zugriffspfad auf die Datei.
+ -Besteht nun aus einem einzigen Speicherblock (=nicht mehrere
+ "Mfree()" ntig um das Dokument zu entfernen)
+ -DisplayXY() Routinen angepasst.
+
+25.11.2001
+ -interne Reorganisation
+
+22.11.2001
+ -Verarbeitet nun die meisten getesteten Seiten. D.h. bisher werden alle
+ grafischen Attribute bersprungen.
+ -Kann auch verschlsselte Dateien lesen (wie z.B. Chips&Chips)
+
+20.11.2001
+ -Einfache Textdarstellung einer Seite ohne Grafiken und Links klappt
+ nun einigermassen.
+
+19.11.2001
+ -Nachdem ich seit geraumer Zeit mit dem Gedanken gespielt habe einen
+ eigenen HYPertext Viewer zu schreiben, habe ich endlich mit etwas
+ Code begonnen. (Ausserdem habe ich auch schon seit lngerer Zeit den
+ Quelltext zu WinGuide von dessen Autor Frank Rger erhalten.)
+ Es steht also nichts mehr im Weg um das Projekt zu realisieren.
+ -Die erste Version ist wie immer eine ".TOS" Version mit Textausgaben.
+ Zur Zeit wird lediglich der HYP-Header sowie die Index-Daten aus einer
+ HYP-Datei geladen und eine Indextabelle im Speicher erstellt.
+ Danach wird ein "Baum-Artiger" Index angezeigt.
Index: doc/hypdoc.txt
===================================================================
RCS file: /mint/freemint/tools/hypview/doc/hypdoc.txt,v
retrieving revision 1.2
diff -u -r1.2 hypdoc.txt
--- doc/hypdoc.txt 6 Apr 2008 15:47:03 -0000 1.2
+++ doc/hypdoc.txt 31 Aug 2009 09:34:21 -0000
@@ -1,295 +1,295 @@
-ST-Guide Hypertext Format (=HYP)
-=========================
-Dies ist eine Dokumentation des ST-Guide Hypertext Formats.
-Sie basiert auf der Dokumentation, die man im HCP Hypertext von Holger
-Weets findet. Dazu habe ich an einigen Stellen Ergaenzungen angebracht,
-welche mir beim Programmieren meines Hypertext Viewers aufgefallen sind.
-Meine Ergaenzungen sind mit [PhD] gekennzeichnet.
-
-Diese Dokumentation bitte nicht weitergeben!
-
-Philipp Donze Chavornay, 05.05.2002
-
-================================== schnipp ================================
-Header eines Hypertextes
-------------------------
-Der Header einer Hypertext Datei ist wie folgt aufgebaut:
- 4 Bytes Magic ('HDOC')
- 4 Bytes Laenge der Indextabelle
- (Seiten, Bilder, ext. Referenzen, system, rexx)
- 2 Bytes Anzahl der Eintraege in dieser Tabelle
- 1 Byte Kennung, mit welcher Version des Compilers uebersetzt wurde
- (aktuell 3)
- 1 Byte Kennung, unter welchem Betriebsystem uebersetzt wurde
- (0: unbekannt, 1: AMIGA, 2: ATARI, 3: Macintosh)
-
-
-Indexbereich eines Hypertextes
-------------------------------
-1 Byte Laenge dieses Eintrages
-1 Byte Typ dieses Eintrages
- 0: interne Seite (@node)
- 1: Popup-Node (@pnode)
- 2: externe Referenz (@{... link FILE [LINE]})
- 3: Bild (@image)
- 4: SYSTEM-Argument (@{... system ARG})
- 5: REXX-Script (@{... rxs FILE})
- 6: REXX-Kommando (@{... rx ARG})
- 7: QUIT Dummy-Eintrag (@{... quit})
-4 Bytes Seek Offset in die Datei
-2 Bytes Differenz entpackte/gepackte Laenge des Objektes
-2 Bytes Index des Nachfolgers
-2 Bytes Index des Vorgaengers
-2 Bytes Index des Inhaltsverzeichnisses fuer dieses Objekt
-x Bytes Name des Objektes, nullterminiert
-evtl. ein weiteres Nullbyte, damit der naechste Eintrag wieder
- auf einer geraden Adresse liegt
-
-Von diesen Strukturen finden sich so viele in der Datei, wie der
-entsprechende Wert im Header angibt.
-
-Die Laenge einer Seite berechnet sich aus der Differenz der
-Seek-Offsets dieser Seite und der des Nachfolger-Objektes.
-
-
-Erweiterte Header
------------------
-Erweiterte Header dienen i.w. dem Zweck, alle Daten auch bei Er-
-weiterungen des Systems kompatibel zu aelteren Versionen zu halten.
-
-Der Aufbau eines solchen Headers ist wie folgt:
-2 Bytes Kennung
-2 Bytes Laenge
-n Bytes Daten
-
-Aktuell existieren folgende Header:
-0 Ende-Kennung, es folgen keine weiteren Header mehr
-1 Database Name, es folgen Laenge und C-String
- (@database)
-2 Name der Default-Node, es folgen Laenge und C-String
- (@default)
-3 Name der Host-Applikation(en), es folgen Laenge und C-String(s)
- (@hostname)
-4 Optionen, die von den Default-Einstellungen abweichen, es
- folgen Laenge und C-String
- (@options, Kommandozeile)
-5 Name des/der Autoren, es folgen Laenge und C-String
- (@author)
-6 Versions-Information, es folgen Laenge und C-String
- (@$VER:)
-7 Name der Hilfe Seite, es folgen Laenge und C-String
- (@help)
-8 Beschreibung der Gebiete, in die der Text einzuordnen
- ist, es folgen Laenge und C-String
- (@subject)
-9 HypTree-Header; Aufbau:
- 4 Bytes Summe der Laengen aller expliziten Titel
- Array von Wortbreiten Bitvektoren:
- 1. Wort: Bit n == 1 -> Seite n hat einen expliziten Titel
- 2. Wort: Bit n == 1 -> Seite 16+n hat einen expiziten Titel
- usw.
-10 Flags fuer den ST-Guide (2 Bytes)
- Falls das Bit 10 gesetzt ist, so ist der Hypertext verschluesselt. [PhD]
-11 verwendete Zeilenlaenge (@width)
-
-Ein Lesealgorithmus fuer diese Header muss alle ihm nicht bekannten Header
-ohne Warnung oder Fehlermeldung ueberlesen.
-
-
-
-Datenbereich eines Hypertextes
-------------------------------
-Alle Seiten, Popup's und Bilder, die im Hypertext definiert wurden.
-Meist liegen die Daten in gepackter Form vor, so dass sie nicht ohne
-weiteres verwendet werden koennen. Der verwendete Pack-Algorithmus
-entspricht dem LH5 Verfahren des LHarc, ist somit sehr effizient und
-zumindest beim Auspacken auch schnell genug.
-Die Reihenfolge der Daten-Objekte entspricht der der Indextabelle,
-externe Referenzen, system- und rexx-Eintraege besitzen keine Daten
-in diesem Bereich, die Daten gehoeren folglich immer zu einer
- * Textseite oder zu einem
- * Bild
-
-
-Format einer [p]node
---------------------
-Gehoeren die Daten zu einer Textseite (@node, @pnode), so haben die
-(entpackten) Daten folgendes Format:
- a) optionaler Grafikbereich (nur @node)
- Hier werden alle grafischen Objekte dieser Seite wie
- folgt beschrieben:
- 1 Byte Kennung (27, ESCAPE)
- 1 Byte Typ
- 50: Bild (@image)
- 51: Linie (@line)
- 52: Box (@box)
- 53: Box mit runden Ecken (@rbox)
- 2 Bytes Index, falls Bild
- damit keine 0-Bytes entstehen, liegt dieser Wert zur Basis
- 255 vor und zu beiden Bytes wurde der Wert 1 addiert
- 1 Byte X-Offset in Zeichen
- Bilder: falls X = 0 ==> zentriert [PhD]
- 2 Bytes Y-Offset in Zeichen
- damit keine 0-Bytes entstehen, liegt dieser Wert zur Basis
- 255 vor und zu beiden Bytes wurde der Wert 1 addiert
- 1 Byte Breite des Objektes in Zeichen
- Bilder: falls Breite = 1 ==> limage [PhD]
- 1 Byte Hoehe des Objektes in Zeichen
- 1 Byte Data, falls kein Bild
- Bevor folgende Aufschluesselung angewendet werden kann muss
- zuerst "Data" um eins verkleinert werden! [PhD]
- Linie: Bit 0 == 1: Pfeilspitze am Anfang
- Bit 1 == 1: Pfeilspitze am Ende
- restliche Bits: Linienstil
- Box:
- RBox: Fuellmuster
- Bei Bildern werden Breite und Hoehe ignoriert, bei Linien bilden
- sie das umgrenzende Rechteck.
-
- b) optional bis zu 12 Querverweis-Datenbloecke
- 1 Byte Kennung (27, ESCAPE)
- 1 Byte Typ (48)
- 1 Byte Laenge (ueber alles)
- 2 Bytes Indexnummer der Zielnode (im 255er Format [PhD])
- Text fuer das Popup, Nullterminiert
-
- c) optional weitere Datenbloecke
- 1 Byte Kennung (27, ESCAPE)
- 1 Byte Typ (40-47)
- 1 Byte Laenge (ueber alles)
- Daten
-
- d) optional Fenstertitel (@node, @title)
- 1 Byte Kennung (27, ESCAPE)
- 1 Byte Typ (35)
- Fenstertitel, Nullterminiert
- evtl. Fuellbyte, damit der Text auf einer geraden Adr.
- beginnt
-
- e) optional Tabelle mit Objekten & Seiten (@tree)
- 1 Byte Kennung (27, ESCAPE)
- 1 Byte Typ (49, ObjTable)
- 2 Bytes Zeilennummer in der Zielseite
- 2 Bytes Nummer des Baumes
- 2 Bytes Objekt in diesem Baum
- 2 Bytes Index der Seite
- Damit keine 0-Bytes entstehen, liegen alle 2 Byte Werte zur
- Basis 255 vor und zu beiden Bytes wurde der Wert 1 addiert;
-
- f) optional Text mit Attributen
- Die einzelnen Zeilen sind durch ein 0-Byte abgeschlossen und
- koennen beliebig viele nicht auszugebende Zusatz-Information
- enthalten.
-
- Diese Informations-Sequenzen werden jeweils durch das Zeichen
- ESCAPE (27) eingeleitet, ihm folgt ein weiteres ESCAPE oder
- ein Typ, im ersten Fall ist das Zeichen ESCAPE auszugeben und
- im zweiten Fall bestimmt der Typ das weitere Vorgehen:
- 36: Referenz auf andere Seite
- @{... link NODE}
- 37: wie 36, aber mit Zeilennummer
- @{... link NODE LINE}
- 38: wie 36 nur durch 'alink' erzeugt
- @{... alink NODE}
- 39: wie 38, aber mit Zeilennummer
- @{... alink NODE LINE}
- >= 100: Vektor fuer Textattribute:
- nach Abzug von 100 ergibt sich folgender
- Bitvektor:
- 1: Fettschrift
- 2: helle Schrift
- 4: Kursivschrift
- 8: unterstrichen
- 16: 'Outlined'
- 32: schattierte Schrift
-
- Bei Typ 37 und 39 folgen 2 Bytes Zeilennummer; damit keine
- 0-Bytes entstehen, liegt dieser Wert zur Basis 255 vor und
- zu beiden Bytes wurde der Wert 1 addiert
-
- Bei Typ 36-39 folgen nun
- 2 Bytes Index in die Tabelle aus dem Indexbereich;
- damit keine 0-Bytes entstehen, liegt dieser Wert zur
- Basis 255 vor und zu beiden Bytes wurde der Wert 1
- addiert
- 1 Byte Laenge des betreffenden Strings + 32
- ist die Laenge gleich 32, so ist hier direkt der Name
- des indizierten Objektes auszugeben, ansonsten so
- viele Zeichen, wie die Laenge angibt, minus 32 aus
- der nachfolgenden Zeichenkette
-
-
-Format eines Bildes
--------------------
-Gehoeren die Daten zu einem Bild, so liegt (nach dem Entpacken)
-folgendes Format vor:
- a) Header
- 2 Bytes Breite des Bildes in Pixeln (wird ignoriert)
- 2 Bytes Hoehe des Bildes in Pixeln (wird ignoriert)
- 1 Byte Anzahl der Planes (1..8)
- 1 Byte 'Planepic': Bit n == 1 --> Daten fuer Plane n
- vorhanden
- 1 Byte 'PlaneOnOff': Bit n == 1 --> Plane ganz ausgefuellt
- 1 Byte Filler, damit das Bild auf gerader Adr. liegt
- b) 1. Plane
- optional 2. Plane
- ...
- optional 8. Plane
-
-
-Format einer REF Datei
-----------------------
-Datei-Kennung
- 4 Bytes Magic ('HREF')
-
-Modul-Header
- 4 Bytes Laenge des Moduls ohne Header
- 4 Bytes Anzahl der Eintraege im aktuellen Modul
-
-Modul-Daten
- 1 Byte Kennung des Eintrages
- 0: Dateiname (z.B. 'ST-GUIDE')
- immer ohne Pfad
- (eintragen eines Pfades ist jedoch erlaubt)
- und meist auch ohne Endung
- (als Endung wird .HYP verwendet, falls keine angegeben)
- 1: Node Name
- Seitenname aus dem Hypertext zum letzten Datei-Eintrag
- 2: Alias Name
- Aliasname aus dem Hypertext zum letzten Node-Eintrag
- (wird vom hcp nur optional hier eingetragen)
- 3: Label Name
- Labelname aus dem Hypertext zum letzten Node-Eintrag
- (wird vom hcp nur optional hier eingetragen)
- 4: database Name
- Database-Argument zum letzten Dateieintrag
- 5: Kennung des Betriebsystemes, unter dem der Hypertext
- uebersetzt wurde
- ('0': unbekannt, '1': AMIGA, '2': ATARI, '3': Macintosh)
-
- 1 Byte Laenge des Eintrages
- n Bytes Eintrag als Nullterminierter String
- bei Typ 3 folgen dem String noch 2 Bytes Zeilennummer
-
-Beliebig viele weitere Modul-Header gefolgt von Modul-Daten.
-
- 8 Bytes Nullen als Ende-Kennung
- [PhD] Diese 8 0-Bytes sind nicht in der Modul-Laenge enthalten!
-
-
-====================== [PhD] ============================
-Ab hier folgen meine eigenen Notizen:
-
--Format einer externen Referenz (=Node Typ 2 bzw. @{... link FILE [LINE]})
- Es gibt keine Daten zum Laden, daher ist im Index die Laenge 0. Saemtliche
- Daten befinden sich im Namen des Index-Eintrags und zwar im folgenden
- Format:
- <name>/<node-name>
-
--Groessen-Angabe bei Bildern:
- Da Bilder groesser als 65KB sein koennen, die Angabe ueber die Laenge der
- entkomprimierten Daten aber auf 2 Bytes (=bis zu 65536 Bytes an Daten)
- beschraenkt ist, wird zur Berechnung der waren Groesse der Index-Eintrag
- "next" zu hilfe gezogen:
- entkomp. Groesse = komp. Groesse + (index->next<<16)+index->comp_diff
-
+ST-Guide Hypertext Format (=HYP)
+=========================
+Dies ist eine Dokumentation des ST-Guide Hypertext Formats.
+Sie basiert auf der Dokumentation, die man im HCP Hypertext von Holger
+Weets findet. Dazu habe ich an einigen Stellen Ergaenzungen angebracht,
+welche mir beim Programmieren meines Hypertext Viewers aufgefallen sind.
+Meine Ergaenzungen sind mit [PhD] gekennzeichnet.
+
+Diese Dokumentation bitte nicht weitergeben!
+
+Philipp Donze Chavornay, 05.05.2002
+
+================================== schnipp ================================
+Header eines Hypertextes
+------------------------
+Der Header einer Hypertext Datei ist wie folgt aufgebaut:
+ 4 Bytes Magic ('HDOC')
+ 4 Bytes Laenge der Indextabelle
+ (Seiten, Bilder, ext. Referenzen, system, rexx)
+ 2 Bytes Anzahl der Eintraege in dieser Tabelle
+ 1 Byte Kennung, mit welcher Version des Compilers uebersetzt wurde
+ (aktuell 3)
+ 1 Byte Kennung, unter welchem Betriebsystem uebersetzt wurde
+ (0: unbekannt, 1: AMIGA, 2: ATARI, 3: Macintosh)
+
+
+Indexbereich eines Hypertextes
+------------------------------
+1 Byte Laenge dieses Eintrages
+1 Byte Typ dieses Eintrages
+ 0: interne Seite (@node)
+ 1: Popup-Node (@pnode)
+ 2: externe Referenz (@{... link FILE [LINE]})
+ 3: Bild (@image)
+ 4: SYSTEM-Argument (@{... system ARG})
+ 5: REXX-Script (@{... rxs FILE})
+ 6: REXX-Kommando (@{... rx ARG})
+ 7: QUIT Dummy-Eintrag (@{... quit})
+4 Bytes Seek Offset in die Datei
+2 Bytes Differenz entpackte/gepackte Laenge des Objektes
+2 Bytes Index des Nachfolgers
+2 Bytes Index des Vorgaengers
+2 Bytes Index des Inhaltsverzeichnisses fuer dieses Objekt
+x Bytes Name des Objektes, nullterminiert
+evtl. ein weiteres Nullbyte, damit der naechste Eintrag wieder
+ auf einer geraden Adresse liegt
+
+Von diesen Strukturen finden sich so viele in der Datei, wie der
+entsprechende Wert im Header angibt.
+
+Die Laenge einer Seite berechnet sich aus der Differenz der
+Seek-Offsets dieser Seite und der des Nachfolger-Objektes.
+
+
+Erweiterte Header
+-----------------
+Erweiterte Header dienen i.w. dem Zweck, alle Daten auch bei Er-
+weiterungen des Systems kompatibel zu aelteren Versionen zu halten.
+
+Der Aufbau eines solchen Headers ist wie folgt:
+2 Bytes Kennung
+2 Bytes Laenge
+n Bytes Daten
+
+Aktuell existieren folgende Header:
+0 Ende-Kennung, es folgen keine weiteren Header mehr
+1 Database Name, es folgen Laenge und C-String
+ (@database)
+2 Name der Default-Node, es folgen Laenge und C-String
+ (@default)
+3 Name der Host-Applikation(en), es folgen Laenge und C-String(s)
+ (@hostname)
+4 Optionen, die von den Default-Einstellungen abweichen, es
+ folgen Laenge und C-String
+ (@options, Kommandozeile)
+5 Name des/der Autoren, es folgen Laenge und C-String
+ (@author)
+6 Versions-Information, es folgen Laenge und C-String
+ (@$VER:)
+7 Name der Hilfe Seite, es folgen Laenge und C-String
+ (@help)
+8 Beschreibung der Gebiete, in die der Text einzuordnen
+ ist, es folgen Laenge und C-String
+ (@subject)
+9 HypTree-Header; Aufbau:
+ 4 Bytes Summe der Laengen aller expliziten Titel
+ Array von Wortbreiten Bitvektoren:
+ 1. Wort: Bit n == 1 -> Seite n hat einen expliziten Titel
+ 2. Wort: Bit n == 1 -> Seite 16+n hat einen expiziten Titel
+ usw.
+10 Flags fuer den ST-Guide (2 Bytes)
+ Falls das Bit 10 gesetzt ist, so ist der Hypertext verschluesselt. [PhD]
+11 verwendete Zeilenlaenge (@width)
+
+Ein Lesealgorithmus fuer diese Header muss alle ihm nicht bekannten Header
+ohne Warnung oder Fehlermeldung ueberlesen.
+
+
+
+Datenbereich eines Hypertextes
+------------------------------
+Alle Seiten, Popup's und Bilder, die im Hypertext definiert wurden.
+Meist liegen die Daten in gepackter Form vor, so dass sie nicht ohne
+weiteres verwendet werden koennen. Der verwendete Pack-Algorithmus
+entspricht dem LH5 Verfahren des LHarc, ist somit sehr effizient und
+zumindest beim Auspacken auch schnell genug.
+Die Reihenfolge der Daten-Objekte entspricht der der Indextabelle,
+externe Referenzen, system- und rexx-Eintraege besitzen keine Daten
+in diesem Bereich, die Daten gehoeren folglich immer zu einer
+ * Textseite oder zu einem
+ * Bild
+
+
+Format einer [p]node
+--------------------
+Gehoeren die Daten zu einer Textseite (@node, @pnode), so haben die
+(entpackten) Daten folgendes Format:
+ a) optionaler Grafikbereich (nur @node)
+ Hier werden alle grafischen Objekte dieser Seite wie
+ folgt beschrieben:
+ 1 Byte Kennung (27, ESCAPE)
+ 1 Byte Typ
+ 50: Bild (@image)
+ 51: Linie (@line)
+ 52: Box (@box)
+ 53: Box mit runden Ecken (@rbox)
+ 2 Bytes Index, falls Bild
+ damit keine 0-Bytes entstehen, liegt dieser Wert zur Basis
+ 255 vor und zu beiden Bytes wurde der Wert 1 addiert
+ 1 Byte X-Offset in Zeichen
+ Bilder: falls X = 0 ==> zentriert [PhD]
+ 2 Bytes Y-Offset in Zeichen
+ damit keine 0-Bytes entstehen, liegt dieser Wert zur Basis
+ 255 vor und zu beiden Bytes wurde der Wert 1 addiert
+ 1 Byte Breite des Objektes in Zeichen
+ Bilder: falls Breite = 1 ==> limage [PhD]
+ 1 Byte Hoehe des Objektes in Zeichen
+ 1 Byte Data, falls kein Bild
+ Bevor folgende Aufschluesselung angewendet werden kann muss
+ zuerst "Data" um eins verkleinert werden! [PhD]
+ Linie: Bit 0 == 1: Pfeilspitze am Anfang
+ Bit 1 == 1: Pfeilspitze am Ende
+ restliche Bits: Linienstil
+ Box:
+ RBox: Fuellmuster
+ Bei Bildern werden Breite und Hoehe ignoriert, bei Linien bilden
+ sie das umgrenzende Rechteck.
+
+ b) optional bis zu 12 Querverweis-Datenbloecke
+ 1 Byte Kennung (27, ESCAPE)
+ 1 Byte Typ (48)
+ 1 Byte Laenge (ueber alles)
+ 2 Bytes Indexnummer der Zielnode (im 255er Format [PhD])
+ Text fuer das Popup, Nullterminiert
+
+ c) optional weitere Datenbloecke
+ 1 Byte Kennung (27, ESCAPE)
+ 1 Byte Typ (40-47)
+ 1 Byte Laenge (ueber alles)
+ Daten
+
+ d) optional Fenstertitel (@node, @title)
+ 1 Byte Kennung (27, ESCAPE)
+ 1 Byte Typ (35)
+ Fenstertitel, Nullterminiert
+ evtl. Fuellbyte, damit der Text auf einer geraden Adr.
+ beginnt
+
+ e) optional Tabelle mit Objekten & Seiten (@tree)
+ 1 Byte Kennung (27, ESCAPE)
+ 1 Byte Typ (49, ObjTable)
+ 2 Bytes Zeilennummer in der Zielseite
+ 2 Bytes Nummer des Baumes
+ 2 Bytes Objekt in diesem Baum
+ 2 Bytes Index der Seite
+ Damit keine 0-Bytes entstehen, liegen alle 2 Byte Werte zur
+ Basis 255 vor und zu beiden Bytes wurde der Wert 1 addiert;
+
+ f) optional Text mit Attributen
+ Die einzelnen Zeilen sind durch ein 0-Byte abgeschlossen und
+ koennen beliebig viele nicht auszugebende Zusatz-Information
+ enthalten.
+
+ Diese Informations-Sequenzen werden jeweils durch das Zeichen
+ ESCAPE (27) eingeleitet, ihm folgt ein weiteres ESCAPE oder
+ ein Typ, im ersten Fall ist das Zeichen ESCAPE auszugeben und
+ im zweiten Fall bestimmt der Typ das weitere Vorgehen:
+ 36: Referenz auf andere Seite
+ @{... link NODE}
+ 37: wie 36, aber mit Zeilennummer
+ @{... link NODE LINE}
+ 38: wie 36 nur durch 'alink' erzeugt
+ @{... alink NODE}
+ 39: wie 38, aber mit Zeilennummer
+ @{... alink NODE LINE}
+ >= 100: Vektor fuer Textattribute:
+ nach Abzug von 100 ergibt sich folgender
+ Bitvektor:
+ 1: Fettschrift
+ 2: helle Schrift
+ 4: Kursivschrift
+ 8: unterstrichen
+ 16: 'Outlined'
+ 32: schattierte Schrift
+
+ Bei Typ 37 und 39 folgen 2 Bytes Zeilennummer; damit keine
+ 0-Bytes entstehen, liegt dieser Wert zur Basis 255 vor und
+ zu beiden Bytes wurde der Wert 1 addiert
+
+ Bei Typ 36-39 folgen nun
+ 2 Bytes Index in die Tabelle aus dem Indexbereich;
+ damit keine 0-Bytes entstehen, liegt dieser Wert zur
+ Basis 255 vor und zu beiden Bytes wurde der Wert 1
+ addiert
+ 1 Byte Laenge des betreffenden Strings + 32
+ ist die Laenge gleich 32, so ist hier direkt der Name
+ des indizierten Objektes auszugeben, ansonsten so
+ viele Zeichen, wie die Laenge angibt, minus 32 aus
+ der nachfolgenden Zeichenkette
+
+
+Format eines Bildes
+-------------------
+Gehoeren die Daten zu einem Bild, so liegt (nach dem Entpacken)
+folgendes Format vor:
+ a) Header
+ 2 Bytes Breite des Bildes in Pixeln (wird ignoriert)
+ 2 Bytes Hoehe des Bildes in Pixeln (wird ignoriert)
+ 1 Byte Anzahl der Planes (1..8)
+ 1 Byte 'Planepic': Bit n == 1 --> Daten fuer Plane n
+ vorhanden
+ 1 Byte 'PlaneOnOff': Bit n == 1 --> Plane ganz ausgefuellt
+ 1 Byte Filler, damit das Bild auf gerader Adr. liegt
+ b) 1. Plane
+ optional 2. Plane
+ ...
+ optional 8. Plane
+
+
+Format einer REF Datei
+----------------------
+Datei-Kennung
+ 4 Bytes Magic ('HREF')
+
+Modul-Header
+ 4 Bytes Laenge des Moduls ohne Header
+ 4 Bytes Anzahl der Eintraege im aktuellen Modul
+
+Modul-Daten
+ 1 Byte Kennung des Eintrages
+ 0: Dateiname (z.B. 'ST-GUIDE')
+ immer ohne Pfad
+ (eintragen eines Pfades ist jedoch erlaubt)
+ und meist auch ohne Endung
+ (als Endung wird .HYP verwendet, falls keine angegeben)
+ 1: Node Name
+ Seitenname aus dem Hypertext zum letzten Datei-Eintrag
+ 2: Alias Name
+ Aliasname aus dem Hypertext zum letzten Node-Eintrag
+ (wird vom hcp nur optional hier eingetragen)
+ 3: Label Name
+ Labelname aus dem Hypertext zum letzten Node-Eintrag
+ (wird vom hcp nur optional hier eingetragen)
+ 4: database Name
+ Database-Argument zum letzten Dateieintrag
+ 5: Kennung des Betriebsystemes, unter dem der Hypertext
+ uebersetzt wurde
+ ('0': unbekannt, '1': AMIGA, '2': ATARI, '3': Macintosh)
+
+ 1 Byte Laenge des Eintrages
+ n Bytes Eintrag als Nullterminierter String
+ bei Typ 3 folgen dem String noch 2 Bytes Zeilennummer
+
+Beliebig viele weitere Modul-Header gefolgt von Modul-Daten.
+
+ 8 Bytes Nullen als Ende-Kennung
+ [PhD] Diese 8 0-Bytes sind nicht in der Modul-Laenge enthalten!
+
+
+====================== [PhD] ============================
+Ab hier folgen meine eigenen Notizen:
+
+-Format einer externen Referenz (=Node Typ 2 bzw. @{... link FILE [LINE]})
+ Es gibt keine Daten zum Laden, daher ist im Index die Laenge 0. Saemtliche
+ Daten befinden sich im Namen des Index-Eintrags und zwar im folgenden
+ Format:
+ <name>/<node-name>
+
+-Groessen-Angabe bei Bildern:
+ Da Bilder groesser als 65KB sein koennen, die Angabe ueber die Laenge der
+ entkomprimierten Daten aber auf 2 Bytes (=bis zu 65536 Bytes an Daten)
+ beschraenkt ist, wird zur Berechnung der waren Groesse der Index-Eintrag
+ "next" zu hilfe gezogen:
+ entkomp. Groesse = komp. Groesse + (index->next<<16)+index->comp_diff
+
Index: doc/todo.txt
===================================================================
RCS file: /mint/freemint/tools/hypview/doc/todo.txt,v
retrieving revision 1.3
diff -u -r1.3 todo.txt
--- doc/todo.txt 18 Apr 2008 20:42:49 -0000 1.3
+++ doc/todo.txt 31 Aug 2009 09:34:21 -0000
@@ -1,81 +1,81 @@
-HypView
-=======
--Tabulatorweite fuer Text-Dateien einstellbar
- * TABSIZE
- enthaelt die gewuenschte Tabulatorweite. Ist diese Variable nicht
- vorhanden, so wird der Wert 8 verwendet. (hcp, ST-Guide)
-
--Zeichensatztabellen fuer Text-Dateien unterstuetzen (ISO Latin, PC, ...)
- via KeyTab oder so
-
--Fehlermeldung falls keine weiteren Fenster mehr vorhanden.
-
-+Window-Cycling selber machen, falls AV-Server das nicht uebernimmt.
-
--ST-Guide kann bei Verwendung eines Fonts mit kleineren Ausmassen als denen
- des Standard-Systemfonts, unter bestimmten Umstaenden Texte so plazieren,
- da Text und Grafik sich nicht ueberschneiden. Angenommen auf einer
- Hypertextseite soll zuerst ein Bild und darunter Text erscheinen.
- Damit jetzt bei Verwendung von @image plus Leerzeilen - anstelle von
- @limage (dieser Befehl setzt ja automatisch Text unter die Grafik) -
- der Text unabhaengig von der Hoehe des Fonts immer unterhalb des Bildes
- erscheint, benutzt ST-Guide an der Stelle, wo die Grafik erscheint,
- Leerzeilen mit der Hoehe des Standard-Systemfonts.
-
--Intelligenter "Fuller" berarbeiten: die linke obere Ecke des Fensters
- sollte nur wenn absolut noetig veraendert (=das Fenster verschoben) werden.
- Falls das vergroesserte Fenster platz auf dem Bildschirm hat, bleibt die
- Ecke unveraendert.
-
--Anpassen der Fensterbreite und -hoehe (=WIN_ADJUST) sollte separat
- konfigurierbar sein.
-
--bei der Selektion sind ein paar Bugs drin. Z.B. auch bei leere Zeilen
- fuehren zu Redraw-Fehlern.
-
--Kontext-Menue mit dem Befehl "Im Text-Editor oeffnen..." erweitern
-
--nach Veraenderung der ASCII-Konfigurationsdatei ueber einen Editor, d.h.
- direkt nach dem Abspeichern im Editor, diese Datei einzulesen und sofort
- alle aenderungen in HypView zu uebernehmen.
-
--Schnellerer Seitenaufbau (z.B. indem man die Text-Ausmasse nur einmal
- berechnet!)
-
--Bug: Hintergrund Farbbilder werden falsch konvertiert mit Imagine VDI
-
-+"Zurueck" ins Kontext-Men aufnehmen(erledigt).
- (evtl. Rechtsklick fuer "Zurueck"-Funktion anstatt Kontext-Men)
-
--Zurueck via Rechtsklick (wie bei ST-Guide) einbauen. Konfigurierbar!
- Rechte Maustaste als Alternative zum Zurueck-Icon, falls die Variable
- RIGHTBACK in der ST-GUIDE.INF definiert ist und der Klick dann
- geschieht, wenn der Mauszeiger sich gerade im ST-Guide-Fenster befindet.
- Diese Funktion ist von einigen Betriebssystemen gewissermaen nicht voll
- "abgesegnet" und daher zunchst nicht aktiviert. Mausfetischisten
- moegen aber in der schnellen Ruecksprungmoeglichkeit einen Gewinn sehen.
- Ihnen zuliebe wurde diese Funktion implementiert.
- * RIGHTBACK
- Falls diese Variable definiert ist (Wert egal), so wird das Bettigen
- der rechten Maustaste wie ein Klick auf den 'zurck' Button interpre-
- tiert. Defaultmig ist diese Variable nicht gesetzt, weil das a) den
- Nachteil hat, da Aktionen im hintenliegenden Fenster nicht mehr
- mglich sind, und b) werden Rechtsklicks von den verschiedenen TOS-
- Versionen unterschiedlich behandelt (Quelle: Martin "WINX" Osieka)
-
-- ALT-R - Remarker oeffnen, falls dieser laeuft oder die Variable REMARKER
- definiert ist
-
-- SHIFT-CTRL-O - wie CTRL-O, nur mit *.* als Pattern im erscheinenden
- Fileselektor
-
-- Ctrl-F - Pattern suchen (wie Extra -> Suchen)
- Bei Auswahl dieser Funktion (auch aktivierbar durch Control - F )
- erscheint ein Dialog, in dem ein Suchbegriff eingegeben werden kann.
- Folgende Knoepfe stehen zur Auswahl:
- Im Text Als Seite Als REFerenz Abbruch
- In allen Seiten ... aller Hypertexte
-
-- Ctrl-G Pattern erneut suchen (wie Extra -> Weitersuchen)
-
-- BubbleGEM fuer Icon
+HypView
+=======
+-Tabulatorweite fuer Text-Dateien einstellbar
+ * TABSIZE
+ enthaelt die gewuenschte Tabulatorweite. Ist diese Variable nicht
+ vorhanden, so wird der Wert 8 verwendet. (hcp, ST-Guide)
+
+-Zeichensatztabellen fuer Text-Dateien unterstuetzen (ISO Latin, PC, ...)
+ via KeyTab oder so
+
+-Fehlermeldung falls keine weiteren Fenster mehr vorhanden.
+
++Window-Cycling selber machen, falls AV-Server das nicht uebernimmt.
+
+-ST-Guide kann bei Verwendung eines Fonts mit kleineren Ausmassen als denen
+ des Standard-Systemfonts, unter bestimmten Umstaenden Texte so plazieren,
+ da Text und Grafik sich nicht ueberschneiden. Angenommen auf einer
+ Hypertextseite soll zuerst ein Bild und darunter Text erscheinen.
+ Damit jetzt bei Verwendung von @image plus Leerzeilen - anstelle von
+ @limage (dieser Befehl setzt ja automatisch Text unter die Grafik) -
+ der Text unabhaengig von der Hoehe des Fonts immer unterhalb des Bildes
+ erscheint, benutzt ST-Guide an der Stelle, wo die Grafik erscheint,
+ Leerzeilen mit der Hoehe des Standard-Systemfonts.
+
+-Intelligenter "Fuller" berarbeiten: die linke obere Ecke des Fensters
+ sollte nur wenn absolut noetig veraendert (=das Fenster verschoben) werden.
+ Falls das vergroesserte Fenster platz auf dem Bildschirm hat, bleibt die
+ Ecke unveraendert.
+
+-Anpassen der Fensterbreite und -hoehe (=WIN_ADJUST) sollte separat
+ konfigurierbar sein.
+
+-bei der Selektion sind ein paar Bugs drin. Z.B. auch bei leere Zeilen
+ fuehren zu Redraw-Fehlern.
+
+-Kontext-Menue mit dem Befehl "Im Text-Editor oeffnen..." erweitern
+
+-nach Veraenderung der ASCII-Konfigurationsdatei ueber einen Editor, d.h.
+ direkt nach dem Abspeichern im Editor, diese Datei einzulesen und sofort
+ alle aenderungen in HypView zu uebernehmen.
+
+-Schnellerer Seitenaufbau (z.B. indem man die Text-Ausmasse nur einmal
+ berechnet!)
+
+-Bug: Hintergrund Farbbilder werden falsch konvertiert mit Imagine VDI
+
++"Zurueck" ins Kontext-Men aufnehmen(erledigt).
+ (evtl. Rechtsklick fuer "Zurueck"-Funktion anstatt Kontext-Men)
+
+-Zurueck via Rechtsklick (wie bei ST-Guide) einbauen. Konfigurierbar!
+ Rechte Maustaste als Alternative zum Zurueck-Icon, falls die Variable
+ RIGHTBACK in der ST-GUIDE.INF definiert ist und der Klick dann
+ geschieht, wenn der Mauszeiger sich gerade im ST-Guide-Fenster befindet.
+ Diese Funktion ist von einigen Betriebssystemen gewissermaen nicht voll
+ "abgesegnet" und daher zunchst nicht aktiviert. Mausfetischisten
+ moegen aber in der schnellen Ruecksprungmoeglichkeit einen Gewinn sehen.
+ Ihnen zuliebe wurde diese Funktion implementiert.
+ * RIGHTBACK
+ Falls diese Variable definiert ist (Wert egal), so wird das Bettigen
+ der rechten Maustaste wie ein Klick auf den 'zurck' Button interpre-
+ tiert. Defaultmig ist diese Variable nicht gesetzt, weil das a) den
+ Nachteil hat, da Aktionen im hintenliegenden Fenster nicht mehr
+ mglich sind, und b) werden Rechtsklicks von den verschiedenen TOS-
+ Versionen unterschiedlich behandelt (Quelle: Martin "WINX" Osieka)
+
+- ALT-R - Remarker oeffnen, falls dieser laeuft oder die Variable REMARKER
+ definiert ist
+
+- SHIFT-CTRL-O - wie CTRL-O, nur mit *.* als Pattern im erscheinenden
+ Fileselektor
+
+- Ctrl-F - Pattern suchen (wie Extra -> Suchen)
+ Bei Auswahl dieser Funktion (auch aktivierbar durch Control - F )
+ erscheint ein Dialog, in dem ein Suchbegriff eingegeben werden kann.
+ Folgende Knoepfe stehen zur Auswahl:
+ Im Text Als Seite Als REFerenz Abbruch
+ In allen Seiten ... aller Hypertexte
+
+- Ctrl-G Pattern erneut suchen (wie Extra -> Weitersuchen)
+
+- BubbleGEM fuer Icon
Index: dragdrop/dragdrop.c
===================================================================
RCS file: /mint/freemint/tools/hypview/dragdrop/dragdrop.c,v
retrieving revision 1.3
diff -u -r1.3 dragdrop.c
--- dragdrop/dragdrop.c 6 Apr 2008 15:47:04 -0000 1.3
+++ dragdrop/dragdrop.c 31 Aug 2009 09:34:21 -0000
@@ -1,270 +1,270 @@
-/*
- * $Id: dragdrop.c,v 1.3 2008/04/06 15:47:04 ggs Exp $
- *
- * HypView - (c) - 2006 Philipp Donze
- * 2006 - Philipp Donze & Odd Skancke
- *
- * A replacement hypertext viewer
- *
- * This file is part of HypView.
- *
- * HypView is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * HypView is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HypView; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- Tabulatorweite: 3
- Kommentare ab: Spalte 60 *Spalte 60*
-*/
-#include <string.h>
-#include <errno.h>
-#ifdef __GNUC__
- #include <fcntl.h>
- #include <mintbind.h>
- #include <signal.h>
-#else
- #include <tos.h>
-#endif
-#include <gem.h>
-#include "dragdrop.h"
-
-/*----------------------------------------------------------------------------------------*/
-/* Drag & Drop - Pipe ffnen (fuer den Sender) */
-/* Funktionsresultat: Handle der Pipe, -1 fuer Fehler oder -2 fuer Fehler bei appl_write */
-/* app_id: ID des Senders (der eigenen Applikation) */
-/* rcvr_id: ID des Empfaengers */
-/* window: Handle des Empaefnger-Fensters */
-/* mx: x-Koordinate der Maus beim Loslassen oder -1 */
-/* my: y-Koordinate der Maus beim Loslassen oder -1 */
-/* kbstate: Status der Kontrolltasten */
-/* format: Feld fuer die max. 8 vom Empfaenger unterstuetzten Formate */
-/* oldpipesig: Zeiger auf den alten Signal-Dispatcher */
-/*----------------------------------------------------------------------------------------*/
-short
-ddcreate( short app_id, short rcvr_id, short window, short mx, short my, short kbstate, unsigned long format[8], void **oldpipesig )
-{
- char pipe[24];
- short mbuf[8];
- long handle_mask;
- short handle, i;
-
- strcpy( pipe, "u:\\pipe\\dragdrop.aa" );
- pipe[18] = 'a' - 1;
- do
- {
- pipe[18]++; /* letzten Buchstaben weitersetzen */
- if ( pipe[18] > 'z' ) /* kein Buchstabe des Alphabets? */
- {
- pipe[17]++; /* ersten Buchstaben der Extension aendern */
- if ( pipe[17] > 'z' ) /* liess sich keine Pipe oeffnen? */
- return( -1 );
- }
-
- handle = (short) Fcreate( pipe, 0x02 ); /* Pipe anlegen, 0x02 bedeutet, da EOF zurueckgeliefert wird, */
- /* wenn die Pipe von niemanden zum Lesen geoeffnet wurde */
- } while ( handle == EACCES );
-
- if ( handle < 0 ) /* liess sich die Pipe nicht anlegen? */
- return( handle );
-
- mbuf[0] = AP_DRAGDROP; /* Drap&Drop-Message senden */
- mbuf[1] = app_id; /* ID der eigenen Applikation */
- mbuf[2] = 0;
- mbuf[3] = window; /* Handle des Fensters */
- mbuf[4] = mx; /* x-Koordinate der Maus */
- mbuf[5] = my; /* y-Koordinate der Maus */
- mbuf[6] = kbstate; /* Tastatur-Status */
- mbuf[7] = (((short) pipe[17]) << 8 ) + pipe[18]; /* Endung des Pipe-Namens */
-
- if ( appl_write( rcvr_id, 16, mbuf ) == 0 ) /* Fehler bei appl_write()? */
- {
- Fclose( handle ); /* Pipe schliessen */
- return( -2 );
- }
-
- handle_mask = 1L << handle;
- i = (short)Fselect( DD_TIMEOUT, &handle_mask, 0L, 0L ); /* auf Antwort warten */
-
- if ( i && handle_mask ) /* kein Timeout? */
- {
- char reply;
-
- if ( Fread( handle, 1L, &reply ) == 1 ) /* Antwort vom Empfaenger lesen */
- {
- if ( reply == DD_OK ) /* alles in Ordnung? */
- {
- if ( Fread( handle, DD_EXTSIZE, format ) == DD_EXTSIZE ) /* unterstuetzte Formate lesen */
- {
- *oldpipesig = (void *)Psignal( SIGPIPE, (void *) SIG_IGN ); /* Dispatcher ausklinken */
- return( handle );
- }
- }
- }
- }
-
- Fclose( handle ); /* Pipe schliessen */
- return( -1 );
-}
-
-
-/*----------------------------------------------------------------------------------------*/
-/* Drag & Drop - berprfen ob der Empfaenger ein Format akzeptiert */
-/* Funktionsresultat: DD_OK: Empfnger unterstuetzt das Format */
-/* DD_EXT: Empfaenger akzeptiert das Format nicht */
-/* DD_LEN: Daten sind zu lang fuer den Empfaenger */
-/* DD_NAK: Fehler bei Kommunikation */
-/* handle: Handle der Pipe */
-/* format: Kruezel fuer das Format */
-/* name: Beschreibung des Formats als C-String */
-/* size: Laenge der zu sendenen Daten */
-/*----------------------------------------------------------------------------------------*/
-short
-ddstry( short handle, unsigned long format, char *name, long size )
-{
- long str_len;
- short hdr_len;
-
- str_len = strlen( name ) + 1; /* Laenge des Strings inklusive Nullbyte */
- hdr_len = 4 + 4 + (short) str_len; /* Laenge des Headers */
-
- if ( Fwrite( handle, 2, &hdr_len ) == 2 ) /* Laenge des Headers senden */
- {
- long written;
-
- written = Fwrite( handle, 4, &format ); /* Formatkruezel */
- written += Fwrite( handle, 4, &size ); /* Laenge der zu sendenden Daten */
- written += Fwrite( handle, str_len, name ); /* Beschreibung des Formats als C-String */
-
- if ( written == hdr_len ) /* liess sich der Header schreiben? */
- {
- char reply;
-
- if ( Fread( handle, 1, &reply ) == 1 )
- return( reply ); /* Antwort zurueckliefern */
- }
- }
- return( DD_NAK );
-}
-
-/*----------------------------------------------------------------------------------------*/
-/* Drag & Drop - Pipe schliessen */
-/* handle: Handle der Pipe */
-/* oldpipesig: Zeiger auf den alten Signalhandler */
-/*----------------------------------------------------------------------------------------*/
-void
-ddclose( short handle, void *oldpipesig )
-{
- Psignal( SIGPIPE, oldpipesig ); /* wieder alten Dispatcher eintragen */
- Fclose( handle ); /* Pipe schliessen */
-}
-
-/*----------------------------------------------------------------------------------------*/
-/* Drag & Drop - Pipe oeffnen (fuer den Empfnger) */
-/* Funktionsresultat: Handle der Pipe oder -1 (Fehler) */
-/* pipe: Zeiger auf den Namen der Pipe ("DRAGDROP.??") */
-/* format: Zeiger auf Array mit unterstuetzten Datenformaten */
-/* oldpipesig: Zeiger auf den Zeiger auf den alten Signalhandler */
-/*----------------------------------------------------------------------------------------*/
-short
-ddopen( char *pipe, unsigned long format[8], void **oldpipesig )
-{
- short handle;
- char reply;
-
- handle = (short) Fopen( pipe, O_RDWR ); /* Handle der Pipe erfragen */
- if ( handle < 0 )
- return( -1 );
-
- reply = DD_OK; /* Programm unterstuetzt Drag & Drop */
-
- *oldpipesig = (void *)Psignal( SIGPIPE, (void *) SIG_IGN ); /* Signal ignorieren */
-
- if ( Fwrite( handle, 1, &reply ) == 1 )
- {
- if ( Fwrite( handle, DD_EXTSIZE, format ) == DD_EXTSIZE )
- return( handle );
- }
-
- ddclose( handle, *oldpipesig ); /* Pipe schliessen */
- return( -1 );
-}
-
-/*----------------------------------------------------------------------------------------*/
-/* Header fuer Drag & Drop einlesen */
-/* Funktionsresultat: 0 Fehler 1: alles in Ordnung */
-/* handle: Handle der Pipe */
-/* name: Zeiger auf Array fuer den Datennamen */
-/* format: Zeiger auf ein Long, das das Datenformat anzeigt */
-/* size: Zeiger auf ein Long fuer die Laenge der Daten */
-/*----------------------------------------------------------------------------------------*/
-short
-ddrtry( short handle, char *name, unsigned long *format, long *size )
-{
- short hdr_len;
-
- if ( Fread( handle, 2, &hdr_len ) == 2 ) /* Headerlaenge auslesen */
- {
- if ( hdr_len >= 9 ) /* kompletter Header? */
- {
- if ( Fread( handle, 4, format ) == 4 ) /* Datentyp auslesen */
- {
- if ( Fread( handle, 4, size ) == 4 ) /* Laenge der Daten in Bytes auslesen */
- {
- short name_len;
-
- name_len = hdr_len -= 8; /* Laenge des Namens inklusive Nullbyte */
-
- if ( name_len > DD_NAMEMAX )
- name_len = DD_NAMEMAX;
-
- if ( Fread( handle, name_len, name ) == name_len ) /* Datennamen auslesen */
- {
- char buf[64];
-
- hdr_len -= name_len;
-
- while ( hdr_len > 64 ) /* Headerrest auslesen */
- {
- Fread( handle, 64, buf );
- hdr_len -= 64;
- }
-
- if ( hdr_len > 0 )
- Fread( handle, hdr_len, buf );
-
- return( 1 );
- }
- }
- }
- }
- }
- return( 0 ); /* Fehler */
-}
-
-/*----------------------------------------------------------------------------------------*/
-/* Meldung an den Drag & Drop - Initiator senden */
-/* Funktionsresultat: 0: Fehler 1: alles in Ordnung */
-/* handle: Handle der Pipe */
-/* msg: Nachrichtennummer */
-/*----------------------------------------------------------------------------------------*/
-short
-ddreply( short handle, short msg )
-{
- if ( Fwrite( handle, 1, ((char *) &msg ) + 1 ) != 1 ) /* Fehler? */
- {
- Fclose( handle ); /* Pipe schliessen */
- return( 0 );
- }
- return( 1 );
-}
+/*
+ * $Id: dragdrop.c,v 1.3 2008/04/06 15:47:04 ggs Exp $
+ *
+ * HypView - (c) - 2006 Philipp Donze
+ * 2006 - Philipp Donze & Odd Skancke
+ *
+ * A replacement hypertext viewer
+ *
+ * This file is part of HypView.
+ *
+ * HypView is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * HypView is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HypView; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/*
+ Tabulatorweite: 3
+ Kommentare ab: Spalte 60 *Spalte 60*
+*/
+#include <string.h>
+#include <errno.h>
+#ifdef __GNUC__
+ #include <fcntl.h>
+ #include <mintbind.h>
+ #include <signal.h>
+#else
+ #include <tos.h>
+#endif
+#include <gem.h>
+#include "dragdrop.h"
+
+/*----------------------------------------------------------------------------------------*/
+/* Drag & Drop - Pipe ffnen (fuer den Sender) */
+/* Funktionsresultat: Handle der Pipe, -1 fuer Fehler oder -2 fuer Fehler bei appl_write */
+/* app_id: ID des Senders (der eigenen Applikation) */
+/* rcvr_id: ID des Empfaengers */
+/* window: Handle des Empaefnger-Fensters */
+/* mx: x-Koordinate der Maus beim Loslassen oder -1 */
+/* my: y-Koordinate der Maus beim Loslassen oder -1 */
+/* kbstate: Status der Kontrolltasten */
+/* format: Feld fuer die max. 8 vom Empfaenger unterstuetzten Formate */
+/* oldpipesig: Zeiger auf den alten Signal-Dispatcher */
+/*----------------------------------------------------------------------------------------*/
+short
+ddcreate( short app_id, short rcvr_id, short window, short mx, short my, short kbstate, unsigned long format[8], void **oldpipesig )
+{
+ char pipe[24];
+ short mbuf[8];
+ long handle_mask;
+ short handle, i;
+
+ strcpy( pipe, "u:\\pipe\\dragdrop.aa" );
+ pipe[18] = 'a' - 1;
+ do
+ {
+ pipe[18]++; /* letzten Buchstaben weitersetzen */
+ if ( pipe[18] > 'z' ) /* kein Buchstabe des Alphabets? */
+ {
+ pipe[17]++; /* ersten Buchstaben der Extension aendern */
+ if ( pipe[17] > 'z' ) /* liess sich keine Pipe oeffnen? */
+ return( -1 );
+ }
+
+ handle = (short) Fcreate( pipe, 0x02 ); /* Pipe anlegen, 0x02 bedeutet, da EOF zurueckgeliefert wird, */
+ /* wenn die Pipe von niemanden zum Lesen geoeffnet wurde */
+ } while ( handle == EACCES );
+
+ if ( handle < 0 ) /* liess sich die Pipe nicht anlegen? */
+ return( handle );
+
+ mbuf[0] = AP_DRAGDROP; /* Drap&Drop-Message senden */
+ mbuf[1] = app_id; /* ID der eigenen Applikation */
+ mbuf[2] = 0;
+ mbuf[3] = window; /* Handle des Fensters */
+ mbuf[4] = mx; /* x-Koordinate der Maus */
+ mbuf[5] = my; /* y-Koordinate der Maus */
+ mbuf[6] = kbstate; /* Tastatur-Status */
+ mbuf[7] = (((short) pipe[17]) << 8 ) + pipe[18]; /* Endung des Pipe-Namens */
+
+ if ( appl_write( rcvr_id, 16, mbuf ) == 0 ) /* Fehler bei appl_write()? */
+ {
+ Fclose( handle ); /* Pipe schliessen */
+ return( -2 );
+ }
+
+ handle_mask = 1L << handle;
+ i = (short)Fselect( DD_TIMEOUT, &handle_mask, 0L, 0L ); /* auf Antwort warten */
+
+ if ( i && handle_mask ) /* kein Timeout? */
+ {
+ char reply;
+
+ if ( Fread( handle, 1L, &reply ) == 1 ) /* Antwort vom Empfaenger lesen */
+ {
+ if ( reply == DD_OK ) /* alles in Ordnung? */
+ {
+ if ( Fread( handle, DD_EXTSIZE, format ) == DD_EXTSIZE ) /* unterstuetzte Formate lesen */
+ {
+ *oldpipesig = (void *)Psignal( SIGPIPE, (void *) SIG_IGN ); /* Dispatcher ausklinken */
+ return( handle );
+ }
+ }
+ }
+ }
+
+ Fclose( handle ); /* Pipe schliessen */
+ return( -1 );
+}
+
+
+/*----------------------------------------------------------------------------------------*/
+/* Drag & Drop - berprfen ob der Empfaenger ein Format akzeptiert */
+/* Funktionsresultat: DD_OK: Empfnger unterstuetzt das Format */
+/* DD_EXT: Empfaenger akzeptiert das Format nicht */
+/* DD_LEN: Daten sind zu lang fuer den Empfaenger */
+/* DD_NAK: Fehler bei Kommunikation */
+/* handle: Handle der Pipe */
+/* format: Kruezel fuer das Format */
+/* name: Beschreibung des Formats als C-String */
+/* size: Laenge der zu sendenen Daten */
+/*----------------------------------------------------------------------------------------*/
+short
+ddstry( short handle, unsigned long format, char *name, long size )
+{
+ long str_len;
+ short hdr_len;
+
+ str_len = strlen( name ) + 1; /* Laenge des Strings inklusive Nullbyte */
+ hdr_len = 4 + 4 + (short) str_len; /* Laenge des Headers */
+
+ if ( Fwrite( handle, 2, &hdr_len ) == 2 ) /* Laenge des Headers senden */
+ {
+ long written;
+
+ written = Fwrite( handle, 4, &format ); /* Formatkruezel */
+ written += Fwrite( handle, 4, &size ); /* Laenge der zu sendenden Daten */
+ written += Fwrite( handle, str_len, name ); /* Beschreibung des Formats als C-String */
+
+ if ( written == hdr_len ) /* liess sich der Header schreiben? */
+ {
+ char reply;
+
+ if ( Fread( handle, 1, &reply ) == 1 )
+ return( reply ); /* Antwort zurueckliefern */
+ }
+ }
+ return( DD_NAK );
+}
+
+/*----------------------------------------------------------------------------------------*/
+/* Drag & Drop - Pipe schliessen */
+/* handle: Handle der Pipe */
+/* oldpipesig: Zeiger auf den alten Signalhandler */
+/*----------------------------------------------------------------------------------------*/
+void
+ddclose( short handle, void *oldpipesig )
+{
+ Psignal( SIGPIPE, oldpipesig ); /* wieder alten Dispatcher eintragen */
+ Fclose( handle ); /* Pipe schliessen */
+}
+
+/*----------------------------------------------------------------------------------------*/
+/* Drag & Drop - Pipe oeffnen (fuer den Empfnger) */
+/* Funktionsresultat: Handle der Pipe oder -1 (Fehler) */
+/* pipe: Zeiger auf den Namen der Pipe ("DRAGDROP.??") */
+/* format: Zeiger auf Array mit unterstuetzten Datenformaten */
+/* oldpipesig: Zeiger auf den Zeiger auf den alten Signalhandler */
+/*----------------------------------------------------------------------------------------*/
+short
+ddopen( char *pipe, unsigned long format[8], void **oldpipesig )
+{
+ short handle;
+ char reply;
+
+ handle = (short) Fopen( pipe, O_RDWR ); /* Handle der Pipe erfragen */
+ if ( handle < 0 )
+ return( -1 );
+
+ reply = DD_OK; /* Programm unterstuetzt Drag & Drop */
+
+ *oldpipesig = (void *)Psignal( SIGPIPE, (void *) SIG_IGN ); /* Signal ignorieren */
+
+ if ( Fwrite( handle, 1, &reply ) == 1 )
+ {
+ if ( Fwrite( handle, DD_EXTSIZE, format ) == DD_EXTSIZE )
+ return( handle );
+ }
+
+ ddclose( handle, *oldpipesig ); /* Pipe schliessen */
+ return( -1 );
+}
+
+/*----------------------------------------------------------------------------------------*/
+/* Header fuer Drag & Drop einlesen */
+/* Funktionsresultat: 0 Fehler 1: alles in Ordnung */
+/* handle: Handle der Pipe */
+/* name: Zeiger auf Array fuer den Datennamen */
+/* format: Zeiger auf ein Long, das das Datenformat anzeigt */
+/* size: Zeiger auf ein Long fuer die Laenge der Daten */
+/*----------------------------------------------------------------------------------------*/
+short
+ddrtry( short handle, char *name, unsigned long *format, long *size )
+{
+ short hdr_len;
+
+ if ( Fread( handle, 2, &hdr_len ) == 2 ) /* Headerlaenge auslesen */
+ {
+ if ( hdr_len >= 9 ) /* kompletter Header? */
+ {
+ if ( Fread( handle, 4, format ) == 4 ) /* Datentyp auslesen */
+ {
+ if ( Fread( handle, 4, size ) == 4 ) /* Laenge der Daten in Bytes auslesen */
+ {
+ short name_len;
+
+ name_len = hdr_len -= 8; /* Laenge des Namens inklusive Nullbyte */
+
+ if ( name_len > DD_NAMEMAX )
+ name_len = DD_NAMEMAX;
+
+ if ( Fread( handle, name_len, name ) == name_len ) /* Datennamen auslesen */
+ {
+ char buf[64];
+
+ hdr_len -= name_len;
+
+ while ( hdr_len > 64 ) /* Headerrest auslesen */
+ {
+ Fread( handle, 64, buf );
+ hdr_len -= 64;
+ }
+
+ if ( hdr_len > 0 )
+ Fread( handle, hdr_len, buf );
+
+ return( 1 );
+ }
+ }
+ }
+ }
+ }
+ return( 0 ); /* Fehler */
+}
+
+/*----------------------------------------------------------------------------------------*/
+/* Meldung an den Drag & Drop - Initiator senden */
+/* Funktionsresultat: 0: Fehler 1: alles in Ordnung */
+/* handle: Handle der Pipe */
+/* msg: Nachrichtennummer */
+/*----------------------------------------------------------------------------------------*/
+short
+ddreply( short handle, short msg )
+{
+ if ( Fwrite( handle, 1, ((char *) &msg ) + 1 ) != 1 ) /* Fehler? */
+ {
+ Fclose( handle ); /* Pipe schliessen */
+ return( 0 );
+ }
+ return( 1 );
+}
Index: dragdrop/dragdrop.h
===================================================================
RCS file: /mint/freemint/tools/hypview/dragdrop/dragdrop.h,v
retrieving revision 1.2
diff -u -r1.2 dragdrop.h
--- dragdrop/dragdrop.h 6 Apr 2008 15:47:04 -0000 1.2
+++ dragdrop/dragdrop.h 31 Aug 2009 09:34:21 -0000
@@ -1,60 +1,60 @@
-/*
- * $Id: dragdrop.h,v 1.2 2008/04/06 15:47:04 ggs Exp $
- *
- * HypView - (c) - 2006 Philipp Donze
- * 2006 - Philipp Donze & Odd Skancke
- *
- * A replacement hypertext viewer
- *
- * This file is part of HypView.
- *
- * HypView is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * HypView is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HypView; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- Tabulatorweite: 8
- Kommentare ab: Spalte *Spalte 50*
-*/
-#ifndef _DRAGDROP_H_
-#define _DRAGDROP_H_
-
-#ifndef AP_DRAGDROP
-#define AP_DRAGDROP 63
-#endif
-
-#define DD_OK 0
-#define DD_NAK 1
-#define DD_EXT 2
-#define DD_LEN 3
-
-#define DD_TIMEOUT 4000 /* Timeout in ms */
-
-#define DD_NUMEXTS 8 /* Anzahl der Formate */
-#define DD_EXTSIZE 32 /* Laenge des Formatfelds */
-
-
-#define DD_FNAME "u:\\pipe\\dragdrop.aa"
-#define DD_NAMEMAX 128 /* maximale Laenge eines Formatnamens */
-#define DD_HDRMIN 9 /* minmale Laenge des Drag&Drop-Headers */
-#define DD_HDRMAX ( 8 + DD_NAMEMAX ) /* maximale Laenge des Drag&Drop-Headers */
-
-short ddcreate( short app_id, short rcvr_id, short window, short mx, short my, short kbstate, unsigned long format[8], void **oldpipesig );
-short ddstry( short handle, unsigned long format, char *name, long size );
-short ddopen( char *pipe, unsigned long *format, void **oldpipesig );
-void ddclose( short handle, void *oldpipesig );
-short ddrtry( short handle, char *name, unsigned long *format, long *size );
-short ddreply( short handle, short msg );
-
-#endif
+/*
+ * $Id: dragdrop.h,v 1.2 2008/04/06 15:47:04 ggs Exp $
+ *
+ * HypView - (c) - 2006 Philipp Donze
+ * 2006 - Philipp Donze & Odd Skancke
+ *
+ * A replacement hypertext viewer
+ *
+ * This file is part of HypView.
+ *
+ * HypView is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * HypView is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HypView; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/*
+ Tabulatorweite: 8
+ Kommentare ab: Spalte *Spalte 50*
+*/
+#ifndef _DRAGDROP_H_
+#define _DRAGDROP_H_
+
+#ifndef AP_DRAGDROP
+#define AP_DRAGDROP 63
+#endif
+
+#define DD_OK 0
+#define DD_NAK 1
+#define DD_EXT 2
+#define DD_LEN 3
+
+#define DD_TIMEOUT 4000 /* Timeout in ms */
+
+#define DD_NUMEXTS 8 /* Anzahl der Formate */
+#define DD_EXTSIZE 32 /* Laenge des Formatfelds */
+
+
+#define DD_FNAME "u:\\pipe\\dragdrop.aa"
+#define DD_NAMEMAX 128 /* maximale Laenge eines Formatnamens */
+#define DD_HDRMIN 9 /* minmale Laenge des Drag&Drop-Headers */
+#define DD_HDRMAX ( 8 + DD_NAMEMAX ) /* maximale Laenge des Drag&Drop-Headers */
+
+short ddcreate( short app_id, short rcvr_id, short window, short mx, short my, short kbstate, unsigned long format[8], void **oldpipesig );
+short ddstry( short handle, unsigned long format, char *name, long size );
+short ddopen( char *pipe, unsigned long *format, void **oldpipesig );
+void ddclose( short handle, void *oldpipesig );
+short ddrtry( short handle, char *name, unsigned long *format, long *size );
+short ddreply( short handle, short msg );
+
+#endif
Index: hyp/cache.c
===================================================================
RCS file: /mint/freemint/tools/hypview/hyp/cache.c,v
retrieving revision 1.2
diff -u -r1.2 cache.c
--- hyp/cache.c 12 Feb 2006 15:14:57 -0000 1.2
+++ hyp/cache.c 31 Aug 2009 09:34:21 -0000
@@ -1,87 +1,87 @@
-/*
- * $Id: cache.c,v 1.2 2006/02/12 15:14:57 pdonze Exp $
- *
- * HypView - (c) - 2006 Philipp Donze
- * 2006 - Philipp Donze & Odd Skancke
- *
- * A replacement hypertext viewer
- *
- * This file is part of HypView.
- *
- * HypView is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * HypView is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HypView; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifdef __GNUC__
- #include <osbind.h>
-#else
- #include <tos.h>
-#endif
-#include "../diallib.h"
-#include "../hyp.h"
-
-long GetCacheSize(long num_elements)
-{
- return(num_elements*sizeof(INDEX_ENTRY *));
-}
-
-void InitCache(HYP_DOCUMENT *hyp)
-{
- long i;
- for(i=0;i<hyp->num_index;i++)
- {
- hyp->cache[i]=NULL;
- }
-}
-
-void ClearCache(HYP_DOCUMENT *hyp)
-{
- long i;
- for(i=0;i<hyp->num_index;i++)
- {
- if(hyp->cache[i])
- {
- Mfree(hyp->cache[i]);
- hyp->cache[i]=NULL;
- }
- }
-}
-
-void TellCache(HYP_DOCUMENT *hyp, long node_num,void *node)
-{
- hyp->cache[node_num]=node;
-}
-
-void *
-AskCache(HYP_DOCUMENT *hyp, long node_num)
-{
- return(hyp->cache[node_num]);
-}
-
-
-
-
-void RemoveNodes(HYP_DOCUMENT *hyp)
-{
-long i;
- for(i=0;i<hyp->num_index;i++)
- {
- if(hyp->cache[i] && hyp->indextable[i]->type<=POPUP)
- {
- Mfree(hyp->cache[i]);
- hyp->cache[i]=NULL;
- }
- }
-}
-
+/*
+ * $Id: cache.c,v 1.2 2006/02/12 15:14:57 pdonze Exp $
+ *
+ * HypView - (c) - 2006 Philipp Donze
+ * 2006 - Philipp Donze & Odd Skancke
+ *
+ * A replacement hypertext viewer
+ *
+ * This file is part of HypView.
+ *
+ * HypView is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * HypView is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HypView; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifdef __GNUC__
+ #include <osbind.h>
+#else
+ #include <tos.h>
+#endif
+#include "../diallib.h"
+#include "../hyp.h"
+
+long GetCacheSize(long num_elements)
+{
+ return(num_elements*sizeof(INDEX_ENTRY *));
+}
+
+void InitCache(HYP_DOCUMENT *hyp)
+{
+ long i;
+ for(i=0;i<hyp->num_index;i++)
+ {
+ hyp->cache[i]=NULL;
+ }
+}
+
+void ClearCache(HYP_DOCUMENT *hyp)
+{
+ long i;
+ for(i=0;i<hyp->num_index;i++)
+ {
+ if(hyp->cache[i])
+ {
+ Mfree(hyp->cache[i]);
+ hyp->cache[i]=NULL;
+ }
+ }
+}
+
+void TellCache(HYP_DOCUMENT *hyp, long node_num,void *node)
+{
+ hyp->cache[node_num]=node;
+}
+
+void *
+AskCache(HYP_DOCUMENT *hyp, long node_num)
+{
+ return(hyp->cache[node_num]);
+}
+
+
+
+
+void RemoveNodes(HYP_DOCUMENT *hyp)
+{
+long i;
+ for(i=0;i<hyp->num_index;i++)
+ {
+ if(hyp->cache[i] && hyp->indextable[i]->type<=POPUP)
+ {
+ Mfree(hyp->cache[i]);
+ hyp->cache[i]=NULL;
+ }
+ }
+}
+
Index: include/av.h
===================================================================
RCS file: /mint/freemint/tools/hypview/include/av.h,v
retrieving revision 1.3
diff -u -r1.3 av.h
--- include/av.h 7 Apr 2008 18:29:22 -0000 1.3
+++ include/av.h 31 Aug 2009 09:34:22 -0000
@@ -1,462 +1,462 @@
-/*
- * Hinweis:
- * Dieser Text wurde automatisch aus dem beiliegenden Hypertext
- * generiert und enthaelt die fuer Programmierer wichtigen defines
- * sowie zu jeder Nachricht eine Kurzbeschreibung zu deren Aufbau
- */
-
-
-
-/*
- * AV_PROTOKOLL
- * msg[3] = Bitfeld
- * Bit 0: VA_SETSTATUS
- * Bit 1: VA_START
- * Bit 2: AV_STARTED
- * Bit 3: VA_FONTCHANGED
- * Bit 4: Quoting
- * Bit 5: VA_PATH_UPDATE
- * Alle anderen Bits sind fuer Erweiterungen reserviert und
- * sollten daher mit 0 vorbesetzt werden.
- * msg[4] = 0 (reserviert)
- * msg[5] = 0 (reserviert)
- * msg[6/7] = Pointer auf den Accessorynamen, wie er bei appl_find benutzt
- * werden muss; also 8 Zeichen lang und nullterminiert. Wer auf
- * der sicheren Seite sein will, traegt den Namen komplett in Gross-
- * buchstaben ein.
- */
-#define AV_PROTOKOLL 0x4700
-
-
-/*
- * VA_PROTOSTATUS
- * msg[3] = Bitfeld
- * Bit 0 AV_SENDKEY
- * Bit 1 AV_ASKFILEFONT
- * Bit 2 AV_ASKCONFONT, AV_OPENCONSOLE
- * Bit 3 AV_ASKOBJECT
- * Bit 4 AV_OPENWIND
- * Bit 5 AV_STARTPROG
- * Bit 6 AV_ACCWINDOPEN, AV_ACCWINDCLOSED
- * Bit 7 AV_STATUS, AV_GETSTATUS
- * Bit 8 AV_COPY_DRAGGED
- * Bit 9 AV_PATH_UPDATE, AV_WHAT_IZIT, AV_DRAG_ON_WINDOW
- * Bit 10 AV_EXIT
- * Bit 11 AV_XWIND
- * Bit 12 VA_FONTCHANGED
- * Bit 13 AV_STARTED
- * Bit 14: Versteht und benutzt Quoting von Dateinamen
- * Bit 15: AV_FILEINFO, VA_FILECHANGED
- * msg[4]: Bit 0: AV_COPYFILE, VA_FILECOPIED
- * Bit 1: AV_DELFILE, VA_FILEDELETED
- * Bit 2: AV_VIEW, VA_VIEWED
- * Bit 3: AV_SETWINDPOS
- * Bit 4: erlaubt Anlegen symbolischer Links mit AV_COPYFILE
- * Bit 5: AV_SENDCLICK
- * msg[5] = 0 (reserviert)
- * msg[6/7] = Pointer auf den Programmnamen, wie er bei appl_find benutzt
- * werden muss; also 8 Zeichen lang und nullterminiert. Wer auf der
- * sicheren Seite sein will, traegt den Namen komplett in Grossbuch-
- * staben ein.
- */
-#define VA_PROTOSTATUS 0x4701
-
-
-/*
- * AV_GETSTATUS
- */
-#define AV_GETSTATUS 0x4703
-
-
-/*
- * AV_STATUS
- * msg[3/4] = Pointer auf einen String, der keine Steuerzeichen enthalten
- * darf und nicht laenger als 256 Zeichen sein darf. Dieser
- * Pointer darf allerdings NULL sein.
- */
-#define AV_STATUS 0x4704
-
-
-/*
- * VA_SETSTATUS
- * msg[3/4] = Pointer auf einen String, der keine Steuerzeichen enthaelt.
- * Dieser Pointer kann allerdings NULL sein, dann war
- * kein Status gespeichert.
- */
-#define VA_SETSTATUS 0x4705
-
-/*
- * AV_SENDCLICK
- */
-
-#define AV_SENDCLICK 0x4709
-
-
-/*
- * AV_SENDKEY
- * msg[3] = Tastaturstatus (ev_mmokstate, also SHIFT, CTRL, ALT...)
- * msg[4] = ASCII/Scancode der gedrueckten Taste (ev_mkreturn)
- */
-#define AV_SENDKEY 0x4710
-
-
-/*
- * VA_START
- * msg[3/4] = Pointer auf eine Kommandozeile, der auch NULL sein kann.
- * In der Kommandozeile stehen Pfade oder Dateinamen.
- */
-#define VA_START 0x4711
-
-
-/*
- * AV_ASKFILEFONT
- */
-#define AV_ASKFILEFONT 0x4712
-
-
-/*
- * VA_FILEFONT
- * msg[3] = Dateifontnummer (font id)
- * msg[4] = Dateifontgroesse (in points)
- */
-#define VA_FILEFONT 0x4713
-
-
-/*
- * AV_ASKCONFONT
- */
-#define AV_ASKCONFONT 0x4714
-
-
-/*
- * VA_CONFONT
- * msg[3] = Consolefontnummer (font id)
- * msg[4] = Consolefontgroesse (in points)
- */
-#define VA_CONFONT 0x4715
-
-
-/*
- * AV_ASKOBJECT
- */
-#define AV_ASKOBJECT 0x4716
-
-
-/*
- * VA_OBJECT
- * msg[3/4] = Namen aller selektierten Dateien, durch Leerzeichen von-
- * einander getrennt. Falls keine Objekte selektiert sind, so
- * kann dieser Pointer NULL sein.
- */
-#define VA_OBJECT 0x4717
-
-
-/*
- * AV_OPENCONSOLE
- */
-#define AV_OPENCONSOLE 0x4718
-
-
-/*
- * VA_CONSOLEOPEN
- * msg[3] = 0 -> Console wurde nicht geoeffnet
- * anderer Wert -> Console ist jetzt offen und liegt vorne
- */
-#define VA_CONSOLEOPEN 0x4719
-
-
-/*
- * AV_OPENWIND
- * msg[3/4] = Pfad fuer das Fenster
- * msg[5/6] = Wildcard fuer darzustellende Dateien.
- */
-#define AV_OPENWIND 0x4720
-
-
-/*
- * VA_WINDOPEN
- * msg[3] = 0 -> Fenster konnte nicht geoeffnet werden
- * anderer Wert -> Fenster ist jetzt offen und liegt vorne
- */
-#define VA_WINDOPEN 0x4721
-
-
-/*
- * AV_STARTPROG
- * msg[3/4] = Programmname mit kompletten Pfad; kann auch eine beliebige
- * Datei sein, fuer die der Empfaenger dann die zugehoerige
- * Applikation startet
- * msg[5/6] = Kommandozeile (kann NULL sein)
- * msg[7] = Beliebiges 16-Bit Wort, das in VA_PROGSTART wieder
- * zurueckgeliefert wird.
- */
-#define AV_STARTPROG 0x4722
-
-
-/*
- * VA_PROGSTART
- * msg[3] = 0 -> Programm wure nicht gestartet
- * anderer Wert -> Programm wurde gestartet
- * msg[4] = Returncode des gestarteten Programms (so vorhanden)
- * msg[7] = 16-Bit Wort aus AV_STARTPROG
- */
-#define VA_PROGSTART 0x4723
-
-
-/*
- * AV_ACCWINDOPEN
- * msg[3] = AES-Handle des geoeffneten Fensters
- */
-#define AV_ACCWINDOPEN 0x4724
-
-
-/*
- * VA_DRAGACCWIND
- * msg[3] = AES-Handle des Fensters
- * msg[4] = X-Position der Maus
- * msg[5] = Y-Position der Maus
- * msg[6/7] = Pointer auf einen String, der die Namen der Objekte enthaelt.
- */
-#define VA_DRAGACCWIND 0x4725
-
-
-/*
- * AV_ACCWINDCLOSED
- * msg[3] = AES-Handle des Fensters
- */
-#define AV_ACCWINDCLOSED 0x4726
-
-
-/*
- * AV_COPY_DRAGGED
- * msg[3] = Tastaturstatus (Alternate, Control, Shift)
- * msg[4/5] = Pointer auf einen String, der den Namen des Zielobjektes
- * enthaelt. Dies muss ein Pfad sein!
- */
-#define AV_COPY_DRAGGED 0x4728
-
-
-/*
- * VA_COPY_COMPLETE
- * msg[3] = Wenn hier ein Wert ungleich Null steht, dann wurde
- * wirklich etwas kopiert oder verschoben.
- */
-#define VA_COPY_COMPLETE 0x4729
-
-
-/*
- * AV_PATH_UPDATE
- * msg[3/4] = Pointer auf den absoluten Pfad
- */
-#define AV_PATH_UPDATE 0x4730
-
-
-/*
- * AV_WHAT_IZIT
- * msg[3] = X-Koordinate
- * msg[4] = Y-Koordinate
- */
-#define AV_WHAT_IZIT 0x4732
-
-
-/*
- * VA_THAT_IZIT
- * msg[3] = ID der zustaendigen Applikation
- * msg[4] = Typ des Objektes
- * Unbekannt : 0
- * Muelleimer : 1
- * Shredder : 2
- * Clipboard : 3
- * Datei : 4
- * Ordner : 5
- * Laufwerk : 6
- * Fenster : 7
- * Notizblock : 8
- * ? : 9
- * (alle anderen fuer Erweiterungen reserviert.)
- * msg[5+6] = Zeiger auf den Namen des Objektes (oder NULL, falls nicht
- * vorhanden)
- */
-#define VA_THAT_IZIT 0x4733
-#define VA_OB_UNKNOWN 0
-#define VA_OB_TRASHCAN 1
-#define VA_OB_SHREDDER 2
-#define VA_OB_CLIPBOARD 3
-#define VA_OB_FILE 4
-#define VA_OB_FOLDER 5
-#define VA_OB_DRIVE 6
-#define VA_OB_WINDOW 7
-#define VA_OB_NOTEPAD 8
-#define VA_OB_NOTE 9
-
-
-/*
- * AV_DRAG_ON_WINDOW
- * msg[3] = X-Position, wohin die Maus gezogen wurde
- * msg[4] = Y-Position, wohin die Maus gezogen wurde
- * msg[5] = Tastaturstatus (Shift,Control,Alternate)
- * msg[6/7] = Pointer auf einen String, der die Namen der Objekte enthaelt.
- */
-#define AV_DRAG_ON_WINDOW 0x4734
-
-
-/*
- * VA_DRAG_COMPLETE
- * msg[3] = Status der Aktion. (!= 0 heisst, dass wirklich etwas
- * kopiert oder verschoben wurde.
- */
-#define VA_DRAG_COMPLETE 0x4735
-
-
-/*
- * AV_EXIT
- * msg[3] = AES-ID des Senders
- */
-#define AV_EXIT 0x4736
-
-
-/*
- * AV_STARTED
- * msg[3/4] = Der Pointer aus der VA_START Nachricht.
- */
-#define AV_STARTED 0x4738
-
-
-/*
- * VA_FONTCHANGED
- * msg[3] = Dateifontnummer (font id)
- * msg[4] = Dateifontgroesse (in points)
- * msg[5] = Consolefontnummer (font id)
- * msg[6] = Consolefontgroesse (in points)
- */
-#define VA_FONTCHANGED 0x4739
-
-
-/*
- * AV_XWIND
- * msg[3/4] = Pfad fuer das Fenster
- * msg[5/6] = Wildcard als Filter fuer die Anzeige
- * msg[7] = Bitmaske 0x0001 - toppe evtl. vorhandenes Fenter
- * 0x0002 - Wildcard soll nur selektieren
- * - alle anderen Bits auf 0 setzen!
- */
-#define AV_XWIND 0x4740
-
-
-/*
- * VA_XOPEN
- * msg[3] = Gibt an, ob das Fenster geoeffnet werden konnte.
- * (Word 3 == 0 (nein) != 0 (ja))
- */
-#define VA_XOPEN 0x4741
-
-
-/*
- * AV_VIEW
- * msg[3/4]: Zeiger auf den Namen der anzuzeigenden Datei (es ist nur
- * EINE einzelne Datei zulaessig!)
- * msg[5-7]: reserviert, immer 0
- */
-#define AV_VIEW 0x4751
-
-
-/*
- * VA_VIEWED
- * msg[3] : 0=Fehler, 1=Alles ok
- * msg[4-7]: reserviert, immer 0
- */
-#define VA_VIEWED 0x4752
-
-
-/*
- * AV_FILEINFO
- * msg[3/4]: Zeiger auf Datei oder Ordnernamen. Mehrere Dateien/Ordner
- * werden durch Leerzeichen getrennt. Ordner MUeSSEN mit ab-
- * schliessendem '\' uebergeben werden!
- * msg[5-7]: reserviert, immer 0
- */
-#define AV_FILEINFO 0x4753
-
-
-/*
- * VA_FILECHANGED
- * msg[3/4]: Zeiger auf die Namen der Dateien/Ordner, die bei
- * AV_FILEINFO uebergeben wurden, wobei natuerlich einige
- * Dateien/Ordner neue Namen haben koennen
- * Beispiel: Es wurde 'C:\ANNA.TXT C:\AUTO\' uebergeben.
- * Der Benutzer aendert 'ANNA.TXT' in 'ANNELIE.TXT'
- * um. Als Ergebnis erhaelt man dann in dieser
- * Message den String 'C:\ANNELIE.TXT C:\AUTO\'
- * msg[5-7]: reserviert, immer 0
- */
-#define VA_FILECHANGED 0x4754
-
-
-/*
- * AV_COPYFILE
- * msg[3/4]: Zeiger auf die Quelldateie(n) und -Ordner, durch Leer-
- * stellen getrennt, Order mit abschliessendem '\'
- * msg[5/6]: Zeiger auf den Zielordner
- * msg[7] : Bit 0: Originale loeschen (verschieben)
- * Bit 1: Kopien umbenennen
- * Bit 2: Ziel kommentarlos ueberschreiben
- * Bit 3: Nur symbolische Links der Quellen erzeugen
- * (Bit 0 ist dann bedeutungslos)
- * Bit 3-15: reserviert, immer 0
- */
-#define AV_COPYFILE 0x4755
-
-
-/*
- * VA_FILECOPIED
- * msg[3] : 0=Fehler, 1=Alles Ok
- * msg[4-7]: reserviert, immer 0
- */
-#define VA_FILECOPIED 0x4756
-
-
-/*
- * AV_DELFILE
- * msg[3/4]: Zeiger auf die zu loeschenden Dateie(n)/Ordner, durch Leer-
- * stellen getrennt, Order mit abschliessendem '\'
- * msg[5-7]: reserviert, immer 0
- */
-#define AV_DELFILE 0x4757
-
-
-/*
- * VA_FILEDELETED
- * msg[3] : 0=Fehler, 1=Alles Ok
- * msg[4-7]: reserviert, immer 0
- */
-#define VA_FILEDELETED 0x4758
-
-
-/*
- * AV_SETWINDPOS
- * msg[3]: Position X
- * msg[4]: Position Y
- * msg[5]: Breite
- * msg[6]: Hoehe
- * msg[7]: reserviert, immer 0
- */
-#define AV_SETWINDPOS 0x4759
-
-
-/*
- * VA_PATH_UPDATE
- * msg[3/4]: Zeiger auf das Verzeichnis, immer mit '\' abgeschlossen
- * msg[5-7]: reserviert, immer 0
- */
-#define VA_PATH_UPDATE 0x4760
-
-
-/*
- * AV_SENDKLICK
- * msg[3]: ev_mmox
- * msg[4]: ev_mmoy
- * msg[5]: ev_mmobutton
- * msg[6]: ev_mmokstate
- * msg[7]: ev_mbreturn
- */
-#define AV_SENDCLICK 0x4709
+/*
+ * Hinweis:
+ * Dieser Text wurde automatisch aus dem beiliegenden Hypertext
+ * generiert und enthaelt die fuer Programmierer wichtigen defines
+ * sowie zu jeder Nachricht eine Kurzbeschreibung zu deren Aufbau
+ */
+
+
+
+/*
+ * AV_PROTOKOLL
+ * msg[3] = Bitfeld
+ * Bit 0: VA_SETSTATUS
+ * Bit 1: VA_START
+ * Bit 2: AV_STARTED
+ * Bit 3: VA_FONTCHANGED
+ * Bit 4: Quoting
+ * Bit 5: VA_PATH_UPDATE
+ * Alle anderen Bits sind fuer Erweiterungen reserviert und
+ * sollten daher mit 0 vorbesetzt werden.
+ * msg[4] = 0 (reserviert)
+ * msg[5] = 0 (reserviert)
+ * msg[6/7] = Pointer auf den Accessorynamen, wie er bei appl_find benutzt
+ * werden muss; also 8 Zeichen lang und nullterminiert. Wer auf
+ * der sicheren Seite sein will, traegt den Namen komplett in Gross-
+ * buchstaben ein.
+ */
+#define AV_PROTOKOLL 0x4700
+
+
+/*
+ * VA_PROTOSTATUS
+ * msg[3] = Bitfeld
+ * Bit 0 AV_SENDKEY
+ * Bit 1 AV_ASKFILEFONT
+ * Bit 2 AV_ASKCONFONT, AV_OPENCONSOLE
+ * Bit 3 AV_ASKOBJECT
+ * Bit 4 AV_OPENWIND
+ * Bit 5 AV_STARTPROG
+ * Bit 6 AV_ACCWINDOPEN, AV_ACCWINDCLOSED
+ * Bit 7 AV_STATUS, AV_GETSTATUS
+ * Bit 8 AV_COPY_DRAGGED
+ * Bit 9 AV_PATH_UPDATE, AV_WHAT_IZIT, AV_DRAG_ON_WINDOW
+ * Bit 10 AV_EXIT
+ * Bit 11 AV_XWIND
+ * Bit 12 VA_FONTCHANGED
+ * Bit 13 AV_STARTED
+ * Bit 14: Versteht und benutzt Quoting von Dateinamen
+ * Bit 15: AV_FILEINFO, VA_FILECHANGED
+ * msg[4]: Bit 0: AV_COPYFILE, VA_FILECOPIED
+ * Bit 1: AV_DELFILE, VA_FILEDELETED
+ * Bit 2: AV_VIEW, VA_VIEWED
+ * Bit 3: AV_SETWINDPOS
+ * Bit 4: erlaubt Anlegen symbolischer Links mit AV_COPYFILE
+ * Bit 5: AV_SENDCLICK
+ * msg[5] = 0 (reserviert)
+ * msg[6/7] = Pointer auf den Programmnamen, wie er bei appl_find benutzt
+ * werden muss; also 8 Zeichen lang und nullterminiert. Wer auf der
+ * sicheren Seite sein will, traegt den Namen komplett in Grossbuch-
+ * staben ein.
+ */
+#define VA_PROTOSTATUS 0x4701
+
+
+/*
+ * AV_GETSTATUS
+ */
+#define AV_GETSTATUS 0x4703
+
+
+/*
+ * AV_STATUS
+ * msg[3/4] = Pointer auf einen String, der keine Steuerzeichen enthalten
+ * darf und nicht laenger als 256 Zeichen sein darf. Dieser
+ * Pointer darf allerdings NULL sein.
+ */
+#define AV_STATUS 0x4704
+
+
+/*
+ * VA_SETSTATUS
+ * msg[3/4] = Pointer auf einen String, der keine Steuerzeichen enthaelt.
+ * Dieser Pointer kann allerdings NULL sein, dann war
+ * kein Status gespeichert.
+ */
+#define VA_SETSTATUS 0x4705
+
+/*
+ * AV_SENDCLICK
+ */
+
+#define AV_SENDCLICK 0x4709
+
+
+/*
+ * AV_SENDKEY
+ * msg[3] = Tastaturstatus (ev_mmokstate, also SHIFT, CTRL, ALT...)
+ * msg[4] = ASCII/Scancode der gedrueckten Taste (ev_mkreturn)
+ */
+#define AV_SENDKEY 0x4710
+
+
+/*
+ * VA_START
+ * msg[3/4] = Pointer auf eine Kommandozeile, der auch NULL sein kann.
+ * In der Kommandozeile stehen Pfade oder Dateinamen.
+ */
+#define VA_START 0x4711
+
+
+/*
+ * AV_ASKFILEFONT
+ */
+#define AV_ASKFILEFONT 0x4712
+
+
+/*
+ * VA_FILEFONT
+ * msg[3] = Dateifontnummer (font id)
+ * msg[4] = Dateifontgroesse (in points)
+ */
+#define VA_FILEFONT 0x4713
+
+
+/*
+ * AV_ASKCONFONT
+ */
+#define AV_ASKCONFONT 0x4714
+
+
+/*
+ * VA_CONFONT
+ * msg[3] = Consolefontnummer (font id)
+ * msg[4] = Consolefontgroesse (in points)
+ */
+#define VA_CONFONT 0x4715
+
+
+/*
+ * AV_ASKOBJECT
+ */
+#define AV_ASKOBJECT 0x4716
+
+
+/*
+ * VA_OBJECT
+ * msg[3/4] = Namen aller selektierten Dateien, durch Leerzeichen von-
+ * einander getrennt. Falls keine Objekte selektiert sind, so
+ * kann dieser Pointer NULL sein.
+ */
+#define VA_OBJECT 0x4717
+
+
+/*
+ * AV_OPENCONSOLE
+ */
+#define AV_OPENCONSOLE 0x4718
+
+
+/*
+ * VA_CONSOLEOPEN
+ * msg[3] = 0 -> Console wurde nicht geoeffnet
+ * anderer Wert -> Console ist jetzt offen und liegt vorne
+ */
+#define VA_CONSOLEOPEN 0x4719
+
+
+/*
+ * AV_OPENWIND
+ * msg[3/4] = Pfad fuer das Fenster
+ * msg[5/6] = Wildcard fuer darzustellende Dateien.
+ */
+#define AV_OPENWIND 0x4720
+
+
+/*
+ * VA_WINDOPEN
+ * msg[3] = 0 -> Fenster konnte nicht geoeffnet werden
+ * anderer Wert -> Fenster ist jetzt offen und liegt vorne
+ */
+#define VA_WINDOPEN 0x4721
+
+
+/*
+ * AV_STARTPROG
+ * msg[3/4] = Programmname mit kompletten Pfad; kann auch eine beliebige
+ * Datei sein, fuer die der Empfaenger dann die zugehoerige
+ * Applikation startet
+ * msg[5/6] = Kommandozeile (kann NULL sein)
+ * msg[7] = Beliebiges 16-Bit Wort, das in VA_PROGSTART wieder
+ * zurueckgeliefert wird.
+ */
+#define AV_STARTPROG 0x4722
+
+
+/*
+ * VA_PROGSTART
+ * msg[3] = 0 -> Programm wure nicht gestartet
+ * anderer Wert -> Programm wurde gestartet
+ * msg[4] = Returncode des gestarteten Programms (so vorhanden)
+ * msg[7] = 16-Bit Wort aus AV_STARTPROG
+ */
+#define VA_PROGSTART 0x4723
+
+
+/*
+ * AV_ACCWINDOPEN
+ * msg[3] = AES-Handle des geoeffneten Fensters
+ */
+#define AV_ACCWINDOPEN 0x4724
+
+
+/*
+ * VA_DRAGACCWIND
+ * msg[3] = AES-Handle des Fensters
+ * msg[4] = X-Position der Maus
+ * msg[5] = Y-Position der Maus
+ * msg[6/7] = Pointer auf einen String, der die Namen der Objekte enthaelt.
+ */
+#define VA_DRAGACCWIND 0x4725
+
+
+/*
+ * AV_ACCWINDCLOSED
+ * msg[3] = AES-Handle des Fensters
+ */
+#define AV_ACCWINDCLOSED 0x4726
+
+
+/*
+ * AV_COPY_DRAGGED
+ * msg[3] = Tastaturstatus (Alternate, Control, Shift)
+ * msg[4/5] = Pointer auf einen String, der den Namen des Zielobjektes
+ * enthaelt. Dies muss ein Pfad sein!
+ */
+#define AV_COPY_DRAGGED 0x4728
+
+
+/*
+ * VA_COPY_COMPLETE
+ * msg[3] = Wenn hier ein Wert ungleich Null steht, dann wurde
+ * wirklich etwas kopiert oder verschoben.
+ */
+#define VA_COPY_COMPLETE 0x4729
+
+
+/*
+ * AV_PATH_UPDATE
+ * msg[3/4] = Pointer auf den absoluten Pfad
+ */
+#define AV_PATH_UPDATE 0x4730
+
+
+/*
+ * AV_WHAT_IZIT
+ * msg[3] = X-Koordinate
+ * msg[4] = Y-Koordinate
+ */
+#define AV_WHAT_IZIT 0x4732
+
+
+/*
+ * VA_THAT_IZIT
+ * msg[3] = ID der zustaendigen Applikation
+ * msg[4] = Typ des Objektes
+ * Unbekannt : 0
+ * Muelleimer : 1
+ * Shredder : 2
+ * Clipboard : 3
+ * Datei : 4
+ * Ordner : 5
+ * Laufwerk : 6
+ * Fenster : 7
+ * Notizblock : 8
+ * ? : 9
+ * (alle anderen fuer Erweiterungen reserviert.)
+ * msg[5+6] = Zeiger auf den Namen des Objektes (oder NULL, falls nicht
+ * vorhanden)
+ */
+#define VA_THAT_IZIT 0x4733
+#define VA_OB_UNKNOWN 0
+#define VA_OB_TRASHCAN 1
+#define VA_OB_SHREDDER 2
+#define VA_OB_CLIPBOARD 3
+#define VA_OB_FILE 4
+#define VA_OB_FOLDER 5
+#define VA_OB_DRIVE 6
+#define VA_OB_WINDOW 7
+#define VA_OB_NOTEPAD 8
+#define VA_OB_NOTE 9
+
+
+/*
+ * AV_DRAG_ON_WINDOW
+ * msg[3] = X-Position, wohin die Maus gezogen wurde
+ * msg[4] = Y-Position, wohin die Maus gezogen wurde
+ * msg[5] = Tastaturstatus (Shift,Control,Alternate)
+ * msg[6/7] = Pointer auf einen String, der die Namen der Objekte enthaelt.
+ */
+#define AV_DRAG_ON_WINDOW 0x4734
+
+
+/*
+ * VA_DRAG_COMPLETE
+ * msg[3] = Status der Aktion. (!= 0 heisst, dass wirklich etwas
+ * kopiert oder verschoben wurde.
+ */
+#define VA_DRAG_COMPLETE 0x4735
+
+
+/*
+ * AV_EXIT
+ * msg[3] = AES-ID des Senders
+ */
+#define AV_EXIT 0x4736
+
+
+/*
+ * AV_STARTED
+ * msg[3/4] = Der Pointer aus der VA_START Nachricht.
+ */
+#define AV_STARTED 0x4738
+
+
+/*
+ * VA_FONTCHANGED
+ * msg[3] = Dateifontnummer (font id)
+ * msg[4] = Dateifontgroesse (in points)
+ * msg[5] = Consolefontnummer (font id)
+ * msg[6] = Consolefontgroesse (in points)
+ */
+#define VA_FONTCHANGED 0x4739
+
+
+/*
+ * AV_XWIND
+ * msg[3/4] = Pfad fuer das Fenster
+ * msg[5/6] = Wildcard als Filter fuer die Anzeige
+ * msg[7] = Bitmaske 0x0001 - toppe evtl. vorhandenes Fenter
+ * 0x0002 - Wildcard soll nur selektieren
+ * - alle anderen Bits auf 0 setzen!
+ */
+#define AV_XWIND 0x4740
+
+
+/*
+ * VA_XOPEN
+ * msg[3] = Gibt an, ob das Fenster geoeffnet werden konnte.
+ * (Word 3 == 0 (nein) != 0 (ja))
+ */
+#define VA_XOPEN 0x4741
+
+
+/*
+ * AV_VIEW
+ * msg[3/4]: Zeiger auf den Namen der anzuzeigenden Datei (es ist nur
+ * EINE einzelne Datei zulaessig!)
+ * msg[5-7]: reserviert, immer 0
+ */
+#define AV_VIEW 0x4751
+
+
+/*
+ * VA_VIEWED
+ * msg[3] : 0=Fehler, 1=Alles ok
+ * msg[4-7]: reserviert, immer 0
+ */
+#define VA_VIEWED 0x4752
+
+
+/*
+ * AV_FILEINFO
+ * msg[3/4]: Zeiger auf Datei oder Ordnernamen. Mehrere Dateien/Ordner
+ * werden durch Leerzeichen getrennt. Ordner MUeSSEN mit ab-
+ * schliessendem '\' uebergeben werden!
+ * msg[5-7]: reserviert, immer 0
+ */
+#define AV_FILEINFO 0x4753
+
+
+/*
+ * VA_FILECHANGED
+ * msg[3/4]: Zeiger auf die Namen der Dateien/Ordner, die bei
+ * AV_FILEINFO uebergeben wurden, wobei natuerlich einige
+ * Dateien/Ordner neue Namen haben koennen
+ * Beispiel: Es wurde 'C:\ANNA.TXT C:\AUTO\' uebergeben.
+ * Der Benutzer aendert 'ANNA.TXT' in 'ANNELIE.TXT'
+ * um. Als Ergebnis erhaelt man dann in dieser
+ * Message den String 'C:\ANNELIE.TXT C:\AUTO\'
+ * msg[5-7]: reserviert, immer 0
+ */
+#define VA_FILECHANGED 0x4754
+
+
+/*
+ * AV_COPYFILE
+ * msg[3/4]: Zeiger auf die Quelldateie(n) und -Ordner, durch Leer-
+ * stellen getrennt, Order mit abschliessendem '\'
+ * msg[5/6]: Zeiger auf den Zielordner
+ * msg[7] : Bit 0: Originale loeschen (verschieben)
+ * Bit 1: Kopien umbenennen
+ * Bit 2: Ziel kommentarlos ueberschreiben
+ * Bit 3: Nur symbolische Links der Quellen erzeugen
+ * (Bit 0 ist dann bedeutungslos)
+ * Bit 3-15: reserviert, immer 0
+ */
+#define AV_COPYFILE 0x4755
+
+
+/*
+ * VA_FILECOPIED
+ * msg[3] : 0=Fehler, 1=Alles Ok
+ * msg[4-7]: reserviert, immer 0
+ */
+#define VA_FILECOPIED 0x4756
+
+
+/*
+ * AV_DELFILE
+ * msg[3/4]: Zeiger auf die zu loeschenden Dateie(n)/Ordner, durch Leer-
+ * stellen getrennt, Order mit abschliessendem '\'
+ * msg[5-7]: reserviert, immer 0
+ */
+#define AV_DELFILE 0x4757
+
+
+/*
+ * VA_FILEDELETED
+ * msg[3] : 0=Fehler, 1=Alles Ok
+ * msg[4-7]: reserviert, immer 0
+ */
+#define VA_FILEDELETED 0x4758
+
+
+/*
+ * AV_SETWINDPOS
+ * msg[3]: Position X
+ * msg[4]: Position Y
+ * msg[5]: Breite
+ * msg[6]: Hoehe
+ * msg[7]: reserviert, immer 0
+ */
+#define AV_SETWINDPOS 0x4759
+
+
+/*
+ * VA_PATH_UPDATE
+ * msg[3/4]: Zeiger auf das Verzeichnis, immer mit '\' abgeschlossen
+ * msg[5-7]: reserviert, immer 0
+ */
+#define VA_PATH_UPDATE 0x4760
+
+
+/*
+ * AV_SENDKLICK
+ * msg[3]: ev_mmox
+ * msg[4]: ev_mmoy
+ * msg[5]: ev_mmobutton
+ * msg[6]: ev_mmokstate
+ * msg[7]: ev_mbreturn
+ */
+#define AV_SENDCLICK 0x4709
Index: include/dhst.h
===================================================================
RCS file: /mint/freemint/tools/hypview/include/dhst.h,v
retrieving revision 1.1
diff -u -r1.1 dhst.h
--- include/dhst.h 10 Feb 2006 11:33:35 -0000 1.1
+++ include/dhst.h 31 Aug 2009 09:34:22 -0000
@@ -1,32 +1,32 @@
-typedef struct
-{
- char *appname; /* The name of the application (e.g. "Texel") */
- char *apppath; /* The absolute path of the application (e.g. "c:\program\texel.app") */
- char *docname; /* The name of the document (e.g. "balmer.txl") */
- char *docpath; /* The absolute path of the document (e.B. "d:\data\balmer.txl") */
-}DHSTINFO;
-
-/*
- The application then sends the DHST-Server the following message:
- msg[0] DHST_ADD
- msg[1] ap_id
- msg[2] 0
- msg[3]+msg[4] Pointer to the DHSTINFO-structure
- msg[5] 0
- msg[6] 0
- msg[7] 0
-*/
-#define DHST_ADD 0xdadd
-
-/*
- As response you'll get:
- msg[0] DHST_ACK
- msg[1] ap_id
- msg[2] 0
- msg[3]+msg[4] Pointer to DHSTINFO-structure
- (As passed with DHST_ADD)
- msg[5] 0
- msg[6] 0
- msg[7] 0=error(s), else: OK
-*/
-#define DHST_ACK 0xdade
+typedef struct
+{
+ char *appname; /* The name of the application (e.g. "Texel") */
+ char *apppath; /* The absolute path of the application (e.g. "c:\program\texel.app") */
+ char *docname; /* The name of the document (e.g. "balmer.txl") */
+ char *docpath; /* The absolute path of the document (e.B. "d:\data\balmer.txl") */
+}DHSTINFO;
+
+/*
+ The application then sends the DHST-Server the following message:
+ msg[0] DHST_ADD
+ msg[1] ap_id
+ msg[2] 0
+ msg[3]+msg[4] Pointer to the DHSTINFO-structure
+ msg[5] 0
+ msg[6] 0
+ msg[7] 0
+*/
+#define DHST_ADD 0xdadd
+
+/*
+ As response you'll get:
+ msg[0] DHST_ACK
+ msg[1] ap_id
+ msg[2] 0
+ msg[3]+msg[4] Pointer to DHSTINFO-structure
+ (As passed with DHST_ADD)
+ msg[5] 0
+ msg[6] 0
+ msg[7] 0=error(s), else: OK
+*/
+#define DHST_ACK 0xdade
Index: include/scancode.h
===================================================================
RCS file: /mint/freemint/tools/hypview/include/scancode.h,v
retrieving revision 1.2
diff -u -r1.2 scancode.h
--- include/scancode.h 6 Apr 2008 15:47:04 -0000 1.2
+++ include/scancode.h 31 Aug 2009 09:34:22 -0000
@@ -1,65 +1,65 @@
-/*
- * Eine Sammlung wichtiger Scancodes fuer Ataris
- * Philipp Donz 11.08.2000
- */
-#ifndef __SCANCODES__
-#define __SCANCODES__ 1
-
-/* Bits zu Kennzeichnung der Zusatztasten */
-#define KbNUM 0x10 /* Zahlenblock */
-#define KbALT 0x08
-#define KbCTRL 0x04
-#define KbSHIFT 0x03
-#define KbLSHIFT 0x02
-#define KbRSHIFT 0x01
-
-/* selten vorhandene Tasten */
-#define KbISO 0x37
-#define KbPAGEUP 0x49
-#define KbPAGEDOWN 0x51
-#define KbEND 0x4F
-
-/* Funktionstasten */
-#define KbF1 0x3b
-#define KbF2 0x3c
-#define KbF3 0x3d
-#define KbF4 0x3e
-#define KbF5 0x3f
-#define KbF6 0x40
-#define KbF7 0x41
-#define KbF8 0x42
-#define KbF9 0x43
-#define KbF10 0x44
-/* Shift+Funktionstasten */
-#define KbF11 0x54
-#define KbF12 0x55
-#define KbF13 0x56
-#define KbF14 0x57
-#define KbF15 0x58
-#define KbF16 0x59
-#define KbF17 0x5a
-#define KbF18 0x5b
-#define KbF19 0x5c
-#define KbF20 0x5d
-/* Cursor-Bereich */
-#define KbUNDO 0x61
-#define KbHELP 0x62
-#define KbINSERT 0x52
-#define KbHOME 0x47
-#define KbUP 0x48
-#define KbDOWN 0x50
-#define KbLEFT 0x4b
-#define KbRIGHT 0x4d
-/* Alternate-numerische Tasten */
-#define KbAlt1 0x78
-#define KbAlt2 0x79
-#define KbAlt3 0x7a
-#define KbAlt4 0x7b
-#define KbAlt5 0x7c
-#define KbAlt6 0x7d
-#define KbAlt7 0x7e
-#define KbAlt8 0x7f
-#define KbAlt9 0x80
-#define KbAlt0 0x81
-
+/*
+ * Eine Sammlung wichtiger Scancodes fuer Ataris
+ * Philipp Donz 11.08.2000
+ */
+#ifndef __SCANCODES__
+#define __SCANCODES__ 1
+
+/* Bits zu Kennzeichnung der Zusatztasten */
+#define KbNUM 0x10 /* Zahlenblock */
+#define KbALT 0x08
+#define KbCTRL 0x04
+#define KbSHIFT 0x03
+#define KbLSHIFT 0x02
+#define KbRSHIFT 0x01
+
+/* selten vorhandene Tasten */
+#define KbISO 0x37
+#define KbPAGEUP 0x49
+#define KbPAGEDOWN 0x51
+#define KbEND 0x4F
+
+/* Funktionstasten */
+#define KbF1 0x3b
+#define KbF2 0x3c
+#define KbF3 0x3d
+#define KbF4 0x3e
+#define KbF5 0x3f
+#define KbF6 0x40
+#define KbF7 0x41
+#define KbF8 0x42
+#define KbF9 0x43
+#define KbF10 0x44
+/* Shift+Funktionstasten */
+#define KbF11 0x54
+#define KbF12 0x55
+#define KbF13 0x56
+#define KbF14 0x57
+#define KbF15 0x58
+#define KbF16 0x59
+#define KbF17 0x5a
+#define KbF18 0x5b
+#define KbF19 0x5c
+#define KbF20 0x5d
+/* Cursor-Bereich */
+#define KbUNDO 0x61
+#define KbHELP 0x62
+#define KbINSERT 0x52
+#define KbHOME 0x47
+#define KbUP 0x48
+#define KbDOWN 0x50
+#define KbLEFT 0x4b
+#define KbRIGHT 0x4d
+/* Alternate-numerische Tasten */
+#define KbAlt1 0x78
+#define KbAlt2 0x79
+#define KbAlt3 0x7a
+#define KbAlt4 0x7b
+#define KbAlt5 0x7c
+#define KbAlt6 0x7d
+#define KbAlt7 0x7e
+#define KbAlt8 0x7f
+#define KbAlt9 0x80
+#define KbAlt0 0x81
+
#endif
\ No newline at end of file
Index: skins/liesmich.txt
===================================================================
RCS file: /mint/freemint/tools/hypview/skins/liesmich.txt,v
retrieving revision 1.1
diff -u -r1.1 liesmich.txt
--- skins/liesmich.txt 10 Feb 2006 11:33:36 -0000 1.1
+++ skins/liesmich.txt 31 Aug 2009 09:34:22 -0000
@@ -1,13 +1,13 @@
-"Skins" f?r HypView (ab V0.28)
-von Gunnar Gr?bel (http://www.ppp-software.de)
-
-Installation
-============
-Gesamtes Verzeichnis "Skins" (inkl. SKIN_xx.RSC) in das Verzeichnis von
-HypView kopieren.
-Mit einem Editor (qed, luna,...) in der Konfigurations-Datei HYP_VIEW.CFG
-eine Zeile SKIN=... suchen bzw. einf?gen. Diese Zeile w?hlt die
-entsprechende Resource-Datei aus.Z.B.
- SKIN=SKIN_05.RSC
-veranlasst HypView die Datei SKIN_05.RSC aus dem Verzeichnis "Skins"
-zu laden.
+"Skins" f?r HypView (ab V0.28)
+von Gunnar Gr?bel (http://www.ppp-software.de)
+
+Installation
+============
+Gesamtes Verzeichnis "Skins" (inkl. SKIN_xx.RSC) in das Verzeichnis von
+HypView kopieren.
+Mit einem Editor (qed, luna,...) in der Konfigurations-Datei HYP_VIEW.CFG
+eine Zeile SKIN=... suchen bzw. einf?gen. Diese Zeile w?hlt die
+entsprechende Resource-Datei aus.Z.B.
+ SKIN=SKIN_05.RSC
+veranlasst HypView die Datei SKIN_05.RSC aus dem Verzeichnis "Skins"
+zu laden.