r9601 chris_y - in /trunk/netsurf: !NetSurf/Resources/de/Messages !NetSurf/Resources/en/Messages !NetSurf/Resources/fr/Messages !NetSurf/Resources/it/Messages !NetSurf/Resources/nl/Messages amiga/gui.c amiga/gui_options.c amiga/menu.c
by netsurf@semichrome.net
Author: chris_y
Date: Tue Sep 29 13:24:19 2009
New Revision: 9601
URL: http://source.netsurf-browser.org?rev=9601&view=rev
Log:
Add options for "no quit on last window close" (disabled - not implemented) and
"no window on startup"
Modified:
trunk/netsurf/!NetSurf/Resources/de/Messages
trunk/netsurf/!NetSurf/Resources/en/Messages
trunk/netsurf/!NetSurf/Resources/fr/Messages
trunk/netsurf/!NetSurf/Resources/it/Messages
trunk/netsurf/!NetSurf/Resources/nl/Messages
trunk/netsurf/amiga/gui.c
trunk/netsurf/amiga/gui_options.c
trunk/netsurf/amiga/menu.c
Modified: trunk/netsurf/!NetSurf/Resources/de/Messages
URL: http://source.netsurf-browser.org/trunk/netsurf/%21NetSurf/Resources/de/M...
==============================================================================
--- trunk/netsurf/!NetSurf/Resources/de/Messages (original)
+++ trunk/netsurf/!NetSurf/Resources/de/Messages Tue Sep 29 13:24:19 2009
@@ -264,6 +264,7 @@
HistLocalNS:Show local history...
FindTextNS:Find text...
Redraw:Redraw page
+ScaleNS:Scale
ScaleInc:Increase
ScaleDec:Decrease
ScaleNorm:Normal
@@ -1255,6 +1256,8 @@
ContextMenu:Context menu
Enable:Enable
Sticky:Sticky
+OptionNoWindow:Do not open window on startup
+OptionNoQuit:Do not quit when last window closed
# Export
#
Modified: trunk/netsurf/!NetSurf/Resources/en/Messages
URL: http://source.netsurf-browser.org/trunk/netsurf/%21NetSurf/Resources/en/M...
==============================================================================
--- trunk/netsurf/!NetSurf/Resources/en/Messages (original)
+++ trunk/netsurf/!NetSurf/Resources/en/Messages Tue Sep 29 13:24:19 2009
@@ -264,6 +264,7 @@
HistLocalNS:Show local history...
FindTextNS:Find text...
Redraw:Redraw page
+ScaleNS:Scale
ScaleInc:Increase
ScaleDec:Decrease
ScaleNorm:Normal
@@ -1261,6 +1262,8 @@
ContextMenu:Context menu
Enable:Enable
Sticky:Sticky
+OptionNoWindow:Do not open window on startup
+OptionNoQuit:Do not quit when last window closed
# Export
#
Modified: trunk/netsurf/!NetSurf/Resources/fr/Messages
URL: http://source.netsurf-browser.org/trunk/netsurf/%21NetSurf/Resources/fr/M...
==============================================================================
--- trunk/netsurf/!NetSurf/Resources/fr/Messages (original)
+++ trunk/netsurf/!NetSurf/Resources/fr/Messages Tue Sep 29 13:24:19 2009
@@ -264,6 +264,7 @@
HistLocalNS:Show local history...
FindTextNS:Find text...
Redraw:Redraw page
+ScaleNS:Scale
ScaleInc:Increase
ScaleDec:Decrease
ScaleNorm:Normal
@@ -1261,6 +1262,8 @@
ContextMenu:Context menu
Enable:Enable
Sticky:Sticky
+OptionNoWindow:Do not open window on startup
+OptionNoQuit:Do not quit when last window closed
# Export
#
Modified: trunk/netsurf/!NetSurf/Resources/it/Messages
URL: http://source.netsurf-browser.org/trunk/netsurf/%21NetSurf/Resources/it/M...
==============================================================================
--- trunk/netsurf/!NetSurf/Resources/it/Messages (original)
+++ trunk/netsurf/!NetSurf/Resources/it/Messages Tue Sep 29 13:24:19 2009
@@ -266,6 +266,7 @@
HistLocalNS:Mostra cronologia locale...
FindTextNS:Trova testo...
Redraw:Ridisegna pagina
+ScaleNS:Scale
ScaleInc:Incrementa
ScaleDec:Decrementa
ScaleNorm:Normale
@@ -1264,6 +1265,8 @@
ContextMenu:Menu contestuali
Enable:Attivi
Sticky:Fissi
+OptionNoWindow:Do not open window on startup
+OptionNoQuit:Do not quit when last window closed
# Export
#
Modified: trunk/netsurf/!NetSurf/Resources/nl/Messages
URL: http://source.netsurf-browser.org/trunk/netsurf/%21NetSurf/Resources/nl/M...
==============================================================================
--- trunk/netsurf/!NetSurf/Resources/nl/Messages (original)
+++ trunk/netsurf/!NetSurf/Resources/nl/Messages Tue Sep 29 13:24:19 2009
@@ -264,6 +264,7 @@
HistLocalNS:Show local history...
FindTextNS:Find text...
Redraw:Redraw page
+ScaleNS:Scale
ScaleInc:Increase
ScaleDec:Decrease
ScaleNorm:Normal
@@ -1255,6 +1256,8 @@
ContextMenu:Context menu
Enable:Enable
Sticky:Sticky
+OptionNoWindow:Do not open window on startup
+OptionNoQuit:Do not quit when last window closed
# Export
#
Modified: trunk/netsurf/amiga/gui.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.c?rev=9601&r1=9...
==============================================================================
--- trunk/netsurf/amiga/gui.c (original)
+++ trunk/netsurf/amiga/gui.c Tue Sep 29 13:24:19 2009
@@ -842,8 +842,9 @@
{
if(IsMinListEmpty(window_list))
{
- /* last window closed, so exit */
- netsurf_quit = true;
+ /* last window closed, so exit with conditions ;) */
+ if(scrn && (option_close_no_quit == false))
+ netsurf_quit = true;
}
break;
}
Modified: trunk/netsurf/amiga/gui_options.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/gui_options.c?rev=9...
==============================================================================
--- trunk/netsurf/amiga/gui_options.c (original)
+++ trunk/netsurf/amiga/gui_options.c Tue Sep 29 13:24:19 2009
@@ -107,6 +107,8 @@
GID_OPTS_CLIPBOARD,
GID_OPTS_CMENU_ENABLE,
GID_OPTS_CMENU_STICKY,
+ GID_OPTS_STARTUP_NO_WIN,
+ GID_OPTS_CLOSE_NO_QUIT,
GID_OPTS_MARGIN_TOP,
GID_OPTS_MARGIN_LEFT,
GID_OPTS_MARGIN_BOTTOM,
@@ -145,6 +147,7 @@
GRP_OPTS_TABS,
GRP_OPTS_CLIPBOARD,
GRP_OPTS_CONTEXTMENU,
+ GRP_OPTS_BEHAVIOUR,
GRP_OPTS_MARGINS,
GRP_OPTS_SCALING,
GRP_OPTS_APPEARANCE,
@@ -253,6 +256,8 @@
gadlab[GID_OPTS_CLIPBOARD] = (char *)ami_utf8_easy((char *)messages_get("ClipboardUTF8"));
gadlab[GID_OPTS_CMENU_ENABLE] = (char *)ami_utf8_easy((char *)messages_get("Enable"));
gadlab[GID_OPTS_CMENU_STICKY] = (char *)ami_utf8_easy((char *)messages_get("Sticky"));
+ gadlab[GID_OPTS_STARTUP_NO_WIN] = (char *)ami_utf8_easy((char *)messages_get("OptionNoWindow"));
+ gadlab[GID_OPTS_CLOSE_NO_QUIT] = (char *)ami_utf8_easy((char *)messages_get("OptionNoQuit"));
gadlab[GID_OPTS_MARGIN_TOP] = (char *)ami_utf8_easy((char *)messages_get("Top"));
gadlab[GID_OPTS_MARGIN_LEFT] = (char *)ami_utf8_easy((char *)messages_get("Left"));
gadlab[GID_OPTS_MARGIN_RIGHT] = (char *)ami_utf8_easy((char *)messages_get("Right"));
@@ -295,6 +300,7 @@
gadlab[GRP_OPTS_TABS] = (char *)ami_utf8_easy((char *)messages_get("TabbedBrowsing"));
gadlab[GRP_OPTS_CLIPBOARD] = (char *)ami_utf8_easy((char *)messages_get("Clipboard"));
gadlab[GRP_OPTS_CONTEXTMENU] = (char *)ami_utf8_easy((char *)messages_get("ContextMenu"));
+ gadlab[GRP_OPTS_BEHAVIOUR] = (char *)ami_utf8_easy((char *)messages_get("Behaviour"));
gadlab[GRP_OPTS_MARGINS] = (char *)ami_utf8_easy((char *)messages_get("Margins"));
gadlab[GRP_OPTS_SCALING] = (char *)ami_utf8_easy((char *)messages_get("Scaling"));
gadlab[GRP_OPTS_APPEARANCE] = (char *)ami_utf8_easy((char *)messages_get("Appearance"));
@@ -1002,23 +1008,43 @@
LabelEnd,
LayoutEnd, // downloads
CHILD_WeightedHeight, 0,
- LAYOUT_AddChild,VGroupObject,
- LAYOUT_SpaceOuter, TRUE,
- LAYOUT_BevelStyle, BVS_GROUP,
- LAYOUT_Label, gadlab[GRP_OPTS_TABS],
- LAYOUT_AddChild, gow->gadgets[GID_OPTS_TAB_ACTIVE] = CheckBoxObject,
- GA_ID, GID_OPTS_TAB_ACTIVE,
- GA_RelVerify, TRUE,
- GA_Text, gadlab[GID_OPTS_TAB_ACTIVE],
- GA_Selected, !option_new_tab_active,
- CheckBoxEnd,
- LAYOUT_AddChild, gow->gadgets[GID_OPTS_TAB_2] = CheckBoxObject,
- GA_ID, GID_OPTS_TAB_2,
- GA_RelVerify, TRUE,
- GA_Text, gadlab[GID_OPTS_TAB_2],
- GA_Selected, option_button_2_tab,
- CheckBoxEnd,
- LayoutEnd, // tabbed browsing
+ LAYOUT_AddChild,HGroupObject,
+ LAYOUT_AddChild,VGroupObject,
+ LAYOUT_SpaceOuter, TRUE,
+ LAYOUT_BevelStyle, BVS_GROUP,
+ LAYOUT_Label, gadlab[GRP_OPTS_TABS],
+ LAYOUT_AddChild, gow->gadgets[GID_OPTS_TAB_ACTIVE] = CheckBoxObject,
+ GA_ID, GID_OPTS_TAB_ACTIVE,
+ GA_RelVerify, TRUE,
+ GA_Text, gadlab[GID_OPTS_TAB_ACTIVE],
+ GA_Selected, !option_new_tab_active,
+ CheckBoxEnd,
+ LAYOUT_AddChild, gow->gadgets[GID_OPTS_TAB_2] = CheckBoxObject,
+ GA_ID, GID_OPTS_TAB_2,
+ GA_RelVerify, TRUE,
+ GA_Text, gadlab[GID_OPTS_TAB_2],
+ GA_Selected, option_button_2_tab,
+ CheckBoxEnd,
+ LayoutEnd, // tabbed browsing
+ LAYOUT_AddChild,VGroupObject,
+ LAYOUT_SpaceOuter, TRUE,
+ LAYOUT_BevelStyle, BVS_GROUP,
+ LAYOUT_Label, gadlab[GRP_OPTS_CONTEXTMENU],
+ LAYOUT_AddChild, gow->gadgets[GID_OPTS_CMENU_ENABLE] = CheckBoxObject,
+ GA_ID, GID_OPTS_CMENU_ENABLE,
+ GA_RelVerify, TRUE,
+ GA_Text, gadlab[GID_OPTS_CMENU_ENABLE],
+ GA_Selected, option_context_menu,
+ CheckBoxEnd,
+ LAYOUT_AddChild, gow->gadgets[GID_OPTS_CMENU_STICKY] = CheckBoxObject,
+ GA_ID, GID_OPTS_CMENU_STICKY,
+ GA_RelVerify, TRUE,
+ GA_Disabled, !option_context_menu,
+ GA_Text, gadlab[GID_OPTS_CMENU_STICKY],
+ GA_Selected, option_sticky_context_menu,
+ CheckBoxEnd,
+ LayoutEnd, // context menus
+ LayoutEnd, // hgroup
CHILD_WeightedHeight, 0,
LAYOUT_AddChild,HGroupObject,
LAYOUT_SpaceOuter, TRUE,
@@ -1035,21 +1061,21 @@
LAYOUT_AddChild,HGroupObject,
LAYOUT_SpaceOuter, TRUE,
LAYOUT_BevelStyle, BVS_GROUP,
- LAYOUT_Label, gadlab[GRP_OPTS_CONTEXTMENU],
- LAYOUT_AddChild, gow->gadgets[GID_OPTS_CMENU_ENABLE] = CheckBoxObject,
- GA_ID, GID_OPTS_CMENU_ENABLE,
+ LAYOUT_Label, gadlab[GRP_OPTS_BEHAVIOUR],
+ LAYOUT_AddChild, gow->gadgets[GID_OPTS_STARTUP_NO_WIN] = CheckBoxObject,
+ GA_ID, GID_OPTS_STARTUP_NO_WIN,
GA_RelVerify, TRUE,
- GA_Text, gadlab[GID_OPTS_CMENU_ENABLE],
- GA_Selected, option_context_menu,
+ GA_Text, gadlab[GID_OPTS_STARTUP_NO_WIN],
+ GA_Selected, option_startup_no_window,
CheckBoxEnd,
- LAYOUT_AddChild, gow->gadgets[GID_OPTS_CMENU_STICKY] = CheckBoxObject,
- GA_ID, GID_OPTS_CMENU_STICKY,
+ LAYOUT_AddChild, gow->gadgets[GID_OPTS_CLOSE_NO_QUIT] = CheckBoxObject,
+ GA_ID, GID_OPTS_CLOSE_NO_QUIT,
GA_RelVerify, TRUE,
- GA_Disabled, !option_context_menu,
- GA_Text, gadlab[GID_OPTS_CMENU_STICKY],
- GA_Selected, option_sticky_context_menu,
+ GA_Disabled, TRUE,
+ GA_Text, gadlab[GID_OPTS_CLOSE_NO_QUIT],
+ GA_Selected, option_close_no_quit,
CheckBoxEnd,
- LayoutEnd, // context menus
+ LayoutEnd, // behaviour
CHILD_WeightedHeight, 0,
LayoutEnd, // page vgroup
CHILD_WeightedHeight, 0,
@@ -1419,6 +1445,14 @@
if(data) option_sticky_context_menu = true;
else option_sticky_context_menu = false;
+ GetAttr(GA_Selected,gow->gadgets[GID_OPTS_STARTUP_NO_WIN],(ULONG *)&data);
+ if(data) option_startup_no_window = true;
+ else option_startup_no_window = false;
+
+ GetAttr(GA_Selected,gow->gadgets[GID_OPTS_CLOSE_NO_QUIT],(ULONG *)&data);
+ if(data) option_close_no_quit = true;
+ else option_close_no_quit = false;
+
GetAttr(INTEGER_Number,gow->gadgets[GID_OPTS_MARGIN_TOP],(ULONG *)&option_margin_top);
GetAttr(INTEGER_Number,gow->gadgets[GID_OPTS_MARGIN_LEFT],(ULONG *)&option_margin_left);
Modified: trunk/netsurf/amiga/menu.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/menu.c?rev=9601&r1=...
==============================================================================
--- trunk/netsurf/amiga/menu.c (original)
+++ trunk/netsurf/amiga/menu.c Tue Sep 29 13:24:19 2009
@@ -105,7 +105,7 @@
menulab[29] = NM_BARLABEL;
menulab[30] = ami_utf8_easy((char *)messages_get("ShowCookies"));
menulab[31] = NM_BARLABEL;
- menulab[32] = ami_utf8_easy((char *)messages_get("Scale"));
+ menulab[32] = ami_utf8_easy((char *)messages_get("ScaleNS"));
menulab[33] = ami_utf8_easy((char *)messages_get("ScaleDec"));
menulab[34] = ami_utf8_easy((char *)messages_get("ScaleNorm"));
menulab[35] = ami_utf8_easy((char *)messages_get("ScaleInc"));
13 years, 11 months
r9600 chris_y - in /trunk/netsurf/amiga: arexx.c gui.c options.h
by netsurf@semichrome.net
Author: chris_y
Date: Mon Sep 28 17:17:09 2009
New Revision: 9600
URL: http://source.netsurf-browser.org?rev=9600&view=rev
Log:
Added application.library messages New Doc and Open Doc.
Added option_startup_no_window to allow NetSurf to be opened without an initial
browser window (unless a URL is specified on the command line or by extended
selection)
Provision for option_close_no_quit for NetSurf to stay in memory when all browser
windows are closed (not implemented yet)
Modified:
trunk/netsurf/amiga/arexx.c
trunk/netsurf/amiga/gui.c
trunk/netsurf/amiga/options.h
Modified: trunk/netsurf/amiga/arexx.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/arexx.c?rev=9600&r1...
==============================================================================
--- trunk/netsurf/amiga/arexx.c (original)
+++ trunk/netsurf/amiga/arexx.c Mon Sep 28 17:17:09 2009
@@ -134,13 +134,23 @@
}
else
{
- browser_window_go(curbw,(char *)cmd->ac_ArgList[0],NULL,true);
+ if(curbw)
+ {
+ browser_window_go(curbw,(char *)cmd->ac_ArgList[0],NULL,true);
+ }
+ else
+ {
+ browser_window_create((char *)cmd->ac_ArgList[0],NULL,NULL,true,false);
+ }
}
}
STATIC VOID rx_save(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unused)))
{
BPTR fh = 0;
+
+ if(!curbw) return;
+
ami_update_pointer(curbw->window->shared->win,GUI_POINTER_WAIT);
if(fh = FOpen(cmd->ac_ArgList[0],MODE_NEWFILE,0))
{
Modified: trunk/netsurf/amiga/gui.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.c?rev=9600&r1=9...
==============================================================================
--- trunk/netsurf/amiga/gui.c (original)
+++ trunk/netsurf/amiga/gui.c Mon Sep 28 17:17:09 2009
@@ -596,6 +596,12 @@
dri = GetScreenDrawInfo(scrn);
}
+void ami_openscreenfirst(void)
+{
+ ami_openscreen();
+ ami_init_layers(&browserglob, 0, 0);
+}
+
void gui_init2(int argc, char** argv)
{
struct browser_window *bw = NULL;
@@ -614,11 +620,8 @@
ami_fetch_file_register();
ami_openurl_open();
- if(notalreadyrunning)
- {
- ami_openscreen();
- ami_init_layers(&browserglob, 0, 0);
- }
+ if(notalreadyrunning && (option_startup_no_window == false))
+ ami_openscreenfirst();
if(argc) // argc==0 is started from wb
{
@@ -696,22 +699,36 @@
if(IApplication)
{
- ami_appid = RegisterApplication(messages_get("NetSurf"),
- REGAPP_URLIdentifier, "netsurf-browser.org",
- REGAPP_WBStartup, (struct WBStartup *)argv,
-// REGAPP_NoIcon, TRUE,
-// REGAPP_AppIconInfo,(ULONG)&aii,
- REGAPP_HasPrefsWindow,TRUE,
- REGAPP_UniqueApplication,TRUE,
- TAG_DONE);
+ if(argc == 0)
+ {
+ ami_appid = RegisterApplication(messages_get("NetSurf"),
+ REGAPP_URLIdentifier, "netsurf-browser.org",
+ REGAPP_WBStartup, (struct WBStartup *)argv,
+// REGAPP_NoIcon, TRUE,
+ REGAPP_HasPrefsWindow, TRUE,
+ REGAPP_CanCreateNewDocs, TRUE,
+ REGAPP_UniqueApplication, TRUE,
+ TAG_DONE);
+ }
+ else
+ {
+/* TODO: Specify icon when run from Shell */
+ ami_appid = RegisterApplication(messages_get("NetSurf"),
+ REGAPP_URLIdentifier, "netsurf-browser.org",
+ REGAPP_FileName, argv[0],
+ REGAPP_NoIcon, TRUE,
+ REGAPP_HasPrefsWindow, TRUE,
+ REGAPP_CanCreateNewDocs, TRUE,
+ REGAPP_UniqueApplication, TRUE,
+ TAG_DONE);
+ }
GetApplicationAttrs(ami_appid, APPATTR_Port, (ULONG)&applibport, TAG_DONE);
applibsig = (1L << applibport->mp_SigBit);
}
- if(!bw) bw = browser_window_create(option_homepage_url, 0, 0, true,false);
-
- if(locked_screen) UnlockPubScreen(NULL,scrn);
+ if(!bw && (option_startup_no_window == false))
+ bw = browser_window_create(option_homepage_url, 0, 0, true,false);
}
void ami_update_quals(struct gui_window_2 *gwin)
@@ -1436,15 +1453,38 @@
void ami_handle_applib(void)
{
struct ApplicationMsg *applibmsg;
+ struct browser_window *bw;
while((applibmsg=(struct ApplicationMsg *)GetMsg(applibport)))
{
switch (applibmsg->type)
{
+ case APPLIBMT_NewBlankDoc:
+ bw = browser_window_create(option_homepage_url, 0, 0, true, false);
+ break;
+
+ case APPLIBMT_OpenDoc:
+ {
+ struct ApplicationOpenPrintDocMsg *applibopdmsg = applibmsg;
+ char *tempurl;
+
+ tempurl = path_to_url(applibopdmsg->fileName);
+ bw = browser_window_create(tempurl, 0, 0, true, false);
+ free(tempurl);
+ }
+ break;
+
case APPLIBMT_ToFront:
- ScreenToFront(scrn);
- WindowToFront(curbw->window->shared->win);
- ActivateWindow(curbw->window->shared->win);
+ if(curbw)
+ {
+ ScreenToFront(scrn);
+ WindowToFront(curbw->window->shared->win);
+ ActivateWindow(curbw->window->shared->win);
+ }
+ else
+ {
+ bw = browser_window_create(option_homepage_url, 0, 0, true, false);
+ }
break;
case APPLIBMT_OpenPrefs:
@@ -1583,26 +1623,29 @@
struct nsObject *nnode;
struct gui_window_2 *gwin;
- node = (struct nsObject *)GetHead((struct List *)window_list);
-
- do
- {
- nnode=(struct nsObject *)GetSucc((struct Node *)node);
- gwin = node->objstruct;
-
- switch(node->Type)
- {
- case AMINS_TVWINDOW:
- ami_tree_close((struct treeview_window *)gwin);
- break;
-
- case AMINS_WINDOW:
- ami_close_all_tabs(gwin);
- break;
- }
-
- node = nnode;
- } while(node = nnode);
+ if(!IsMinListEmpty(window_list))
+ {
+ node = (struct nsObject *)GetHead((struct List *)window_list);
+
+ do
+ {
+ nnode=(struct nsObject *)GetSucc((struct Node *)node);
+ gwin = node->objstruct;
+
+ switch(node->Type)
+ {
+ case AMINS_TVWINDOW:
+ ami_tree_close((struct treeview_window *)gwin);
+ break;
+
+ case AMINS_WINDOW:
+ ami_close_all_tabs(gwin);
+ break;
+ }
+ node = nnode;
+
+ } while(node = nnode);
+ }
if(IsMinListEmpty(window_list))
{
@@ -1780,6 +1823,8 @@
char tabthrobber[100];
if((bw->browser_window_type == BROWSER_WINDOW_IFRAME) && option_no_iframes) return NULL;
+
+ if(!scrn) ami_openscreenfirst();
if(option_kiosk_mode) new_tab = false;
bw->scale = 1.0;
@@ -2283,6 +2328,7 @@
glob = &browserglob;
+ if(locked_screen) UnlockPubScreen(NULL,scrn);
return gwin;
}
Modified: trunk/netsurf/amiga/options.h
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/options.h?rev=9600&...
==============================================================================
--- trunk/netsurf/amiga/options.h (original)
+++ trunk/netsurf/amiga/options.h Mon Sep 28 17:17:09 2009
@@ -42,6 +42,8 @@
extern bool option_scale_quality;
extern bool option_ask_overwrite;
extern int option_printer_unit;
+extern bool option_startup_no_window;
+extern bool option_close_no_quit;
#define EXTRA_OPTION_DEFINE \
bool option_verbose_log = false; \
@@ -66,6 +68,8 @@
bool option_scale_quality = false; \
bool option_ask_overwrite = false; \
int option_printer_unit = 0; \
+bool option_startup_no_window = false; \
+bool option_close_no_quit = false; \
#define EXTRA_OPTION_TABLE \
{ "verbose_log", OPTION_BOOL, &option_verbose_log}, \
@@ -89,6 +93,8 @@
{ "faster_scroll", OPTION_BOOL, &option_faster_scroll}, \
{ "scale_quality", OPTION_BOOL, &option_scale_quality}, \
{ "ask_overwrite", OPTION_BOOL, &option_ask_overwrite}, \
-{ "printer_unit", OPTION_INTEGER, &option_printer_unit},
+{ "printer_unit", OPTION_INTEGER, &option_printer_unit}, \
+{ "startup_no_window", OPTION_BOOL, &option_startup_no_window}, \
+{ "close_no_quit", OPTION_BOOL, &option_close_no_quit},
#endif
13 years, 11 months
r9599 chris_y - /trunk/netsurf/amiga/gui.c
by netsurf@semichrome.net
Author: chris_y
Date: Mon Sep 28 13:00:40 2009
New Revision: 9599
URL: http://source.netsurf-browser.org?rev=9599&view=rev
Log:
Register with application.library.
Icon appears on AmiDock - ToFront, Open Prefs and (Force) Quit commands work.
Open (and maybe Print) Document could potentially be added.
Not sure if AppIcon-style drag'n'drop works with application.library-registered apps
by default (once Open supported).
Modified:
trunk/netsurf/amiga/gui.c
Modified: trunk/netsurf/amiga/gui.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.c?rev=9599&r1=9...
==============================================================================
--- trunk/netsurf/amiga/gui.c (original)
+++ trunk/netsurf/amiga/gui.c Mon Sep 28 13:00:40 2009
@@ -78,6 +78,8 @@
#include "amiga/gui_options.h"
#include "amiga/bitmap.h"
#include "amiga/print.h"
+#include <libraries/application.h>
+#include <proto/application.h>
#include "amiga/stringview/stringview.h"
#include "amiga/stringview/urlhistory.h"
@@ -118,6 +120,8 @@
struct PopupMenuIFace *IPopupMenu = NULL;
struct Library *KeymapBase = NULL;
struct KeymapIFace *IKeymap = NULL;
+struct Library *ApplicationBase=NULL;
+struct ApplicationIFace *IApplication=NULL;
Class *urlStringClass;
@@ -126,6 +130,9 @@
BOOL rmbtrapped;
BOOL locked_screen = FALSE;
BOOL screen_closed = FALSE;
+uint32 ami_appid;
+struct MsgPort *applibport = NULL;
+ULONG applibsig = 0;
extern colour scroll_widget_fg_colour;
extern colour scroll_widget_bg_colour;
@@ -276,6 +283,11 @@
IKeymap = (struct KeymapIFace *)GetInterface(KeymapBase,"main",1,NULL);
}
+ if(ApplicationBase = OpenLibrary("application.library",50))
+ {
+ IApplication = (struct ApplicationIFace *)GetInterface(ApplicationBase,"application",1,NULL);
+ }
+
urlStringClass = MakeStringClass();
ami_clipboard_init();
@@ -680,6 +692,21 @@
FreeVec(sendcmd);
netsurf_quit=true;
return;
+ }
+
+ if(IApplication)
+ {
+ ami_appid = RegisterApplication(messages_get("NetSurf"),
+ REGAPP_URLIdentifier, "netsurf-browser.org",
+ REGAPP_WBStartup, (struct WBStartup *)argv,
+// REGAPP_NoIcon, TRUE,
+// REGAPP_AppIconInfo,(ULONG)&aii,
+ REGAPP_HasPrefsWindow,TRUE,
+ REGAPP_UniqueApplication,TRUE,
+ TAG_DONE);
+
+ GetApplicationAttrs(ami_appid, APPATTR_Port, (ULONG)&applibport, TAG_DONE);
+ applibsig = (1L << applibport->mp_SigBit);
}
if(!bw) bw = browser_window_create(option_homepage_url, 0, 0, true,false);
@@ -1406,6 +1433,34 @@
}
}
+void ami_handle_applib(void)
+{
+ struct ApplicationMsg *applibmsg;
+
+ while((applibmsg=(struct ApplicationMsg *)GetMsg(applibport)))
+ {
+ switch (applibmsg->type)
+ {
+ case APPLIBMT_ToFront:
+ ScreenToFront(scrn);
+ WindowToFront(curbw->window->shared->win);
+ ActivateWindow(curbw->window->shared->win);
+ break;
+
+ case APPLIBMT_OpenPrefs:
+ ScreenToFront(scrn);
+ ami_gui_opts_open();
+ break;
+
+ case APPLIBMT_Quit:
+ case APPLIBMT_ForceQuit:
+ ami_quit_netsurf();
+ break;
+ }
+ ReplyMsg((struct Message *)applibmsg);
+ }
+}
+
void ami_get_msg(void)
{
ULONG winsignal = 1L << sport->mp_SigBit;
@@ -1415,7 +1470,7 @@
struct Message *timermsg = NULL;
struct MsgPort *printmsgport = ami_print_get_msgport();
ULONG printsig = 1L << printmsgport->mp_SigBit;
- ULONG signalmask = winsignal | appsig | schedulesig | rxsig | printsig;
+ ULONG signalmask = winsignal | appsig | schedulesig | rxsig | printsig | applibsig;
signal = Wait(signalmask);
@@ -1430,6 +1485,10 @@
else if(signal & rxsig)
{
ami_arexx_handle();
+ }
+ else if(signal & applibsig)
+ {
+ ami_handle_applib();
}
else if(signal & printsig)
{
@@ -1568,6 +1627,9 @@
hubbub_finalise(myrealloc,NULL);
+ if(IApplication && ami_appid)
+ UnregisterApplication(ami_appid, NULL);
+
ami_arexx_cleanup();
ami_free_layers(&browserglob);
@@ -1612,11 +1674,14 @@
ami_openurl_close();
FreeStringClass(urlStringClass);
- if(IPopupMenu) DropInterface((struct Interface *)IPopupMenu);
- if(PopupMenuBase) CloseLibrary(PopupMenuBase);
-
- if(IKeymap) DropInterface((struct Interface *)IKeymap);
- if(KeymapBase) CloseLibrary(KeymapBase);
+ if(IApplication) DropInterface((struct Interface *)IApplication);
+ if(ApplicationBase) CloseLibrary(ApplicationBase);
+
+ if(IPopupMenu) DropInterface((struct Interface *)IPopupMenu);
+ if(PopupMenuBase) CloseLibrary(PopupMenuBase);
+
+ if(IKeymap) DropInterface((struct Interface *)IKeymap);
+ if(KeymapBase) CloseLibrary(KeymapBase);
if(ITimer)
{
13 years, 11 months
r9597 chris_y - /trunk/netsurf/amiga/font.c
by netsurf@semichrome.net
Author: chris_y
Date: Wed Sep 23 16:52:36 2009
New Revision: 9597
URL: http://source.netsurf-browser.org?rev=9597&view=rev
Log:
fix text cursor positioning some more
Modified:
trunk/netsurf/amiga/font.c
Modified: trunk/netsurf/amiga/font.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/font.c?rev=9597&r1=...
==============================================================================
--- trunk/netsurf/amiga/font.c (original)
+++ trunk/netsurf/amiga/font.c Wed Sep 23 16:52:36 2009
@@ -94,7 +94,7 @@
struct OutlineFont *ofont;
struct GlyphMap *glyph;
uint32 tx=0,i=0;
- size_t len,utf8len;
+ size_t len, utf8len = 0;
uint8 *utf8;
uint32 co = 0;
int utf16charlen;
@@ -113,9 +113,6 @@
utf16charlen = 1;
else
utf16charlen = 2;
-
- utf8len = utf8_char_byte_length(string);
- string += utf8len;
if(ESetInfo(&ofont->olf_EEngine,
OT_GlyphCode,*utf16,
@@ -142,10 +139,13 @@
TAG_END);
}
}
+
+ utf8len = utf8_char_byte_length(string);
+ string += utf8len;
utf16 += utf16charlen;
}
- if(co == length)
+ if(co == (length - 1))
{
*actual_x = tx;
co = length;
13 years, 12 months
r9594 struggleyb - in /branches/struggleyb/libdom-html: include/dom/html/html_select_element.h src/html/html_select_element.c src/html/html_select_element.h
by netsurf@semichrome.net
Author: struggleyb
Date: Fri Sep 18 04:08:21 2009
New Revision: 9594
URL: http://source.netsurf-browser.org?rev=9594&view=rev
Log:
Most of select element completed.
Modified:
branches/struggleyb/libdom-html/include/dom/html/html_select_element.h
branches/struggleyb/libdom-html/src/html/html_select_element.c
branches/struggleyb/libdom-html/src/html/html_select_element.h
Modified: branches/struggleyb/libdom-html/include/dom/html/html_select_element.h
URL: http://source.netsurf-browser.org/branches/struggleyb/libdom-html/include...
==============================================================================
--- branches/struggleyb/libdom-html/include/dom/html/html_select_element.h (original)
+++ branches/struggleyb/libdom-html/include/dom/html/html_select_element.h Fri Sep 18 04:08:21 2009
@@ -5,3 +5,51 @@
* Copyright 2009 Bo Yang <struggleyb.nku(a)gmail.com>
*/
+#ifndef dom_html_select_element_h_
+#define dom_html_select_element_h_
+
+#include <stdbool.h>
+
+#include <dom/core/exceptions.h>
+
+typedef struct dom_html_select_element dom_html_select_element;
+
+struct dom_html_options_collection;
+struct dom_html_element;
+
+dom_exception dom_html_select_element_get_selected_index(
+ dom_html_select_element *ele, unsigned long *index);
+dom_exception dom_html_select_element_set_selected_index(
+ dom_html_select_element *ele, unsigned long index);
+dom_exception dom_html_select_element_get_length(
+ dom_html_select_element *ele, unsigned long *len);
+dom_exception dom_html_select_element_set_length(
+ dom_html_select_element *ele, unsigned long len);
+dom_exception dom_html_select_element_get_options(
+ dom_html_select_element *ele,
+ struct dom_html_options_collection **col);
+dom_exception dom_html_select_element_get_disabled(
+ dom_html_select_element *ele, bool *disabled);
+dom_exception dom_html_select_element_set_disabled(
+ dom_html_select_element *ele, bool disabled);
+dom_exception dom_html_select_element_get_multiple(
+ dom_html_select_element *ele, bool *multiple);
+dom_exception dom_html_select_element_set_multiple(
+ dom_html_select_element *ele, bool multiple);
+dom_exception dom_html_select_element_get_size(
+ dom_html_select_element *ele, unsigned long *size);
+dom_exception dom_html_select_element_set_size(
+ dom_html_select_element *ele, unsigned long size);
+dom_exception dom_html_select_element_get_tab_index(
+ dom_html_select_element *ele, unsigned long *tab_index);
+dom_exception dom_html_select_element_set_tab_index(
+ dom_html_select_element *ele, unsigned long tab_index);
+
+/* Functions */
+dom_exception dom_html_select_element_add(struct dom_html_element *ele,
+ struct dom_html_element *before);
+dom_exception dom_html_element_blur(struct dom_html_select_element *ele);
+dom_exception dom_html_element_focus(struct dom_html_select_element *ele);
+
+#endif
+
Modified: branches/struggleyb/libdom-html/src/html/html_select_element.c
URL: http://source.netsurf-browser.org/branches/struggleyb/libdom-html/src/htm...
==============================================================================
--- branches/struggleyb/libdom-html/src/html/html_select_element.c (original)
+++ branches/struggleyb/libdom-html/src/html/html_select_element.c Fri Sep 18 04:08:21 2009
@@ -5,3 +5,340 @@
* Copyright 2009 Bo Yang <struggleyb.nku(a)gmail.com>
*/
+#include <assert.h>
+
+#include "html/html_select_element.h"
+
+#include "core/node.h"
+#include "core/document.h"
+#include "utils/utils.h"
+
+static struct dom_element_protected_vtable _protect_vtable = {
+ {
+ DOM_NODE_PROTECT_VTABLE_HTML_SELECT_ELEMENT
+ },
+ DOM_HTML_SELECT_ELEMENT_PROTECT_VTABLE
+};
+
+static bool is_option(struct dom_node_internal *node);
+/**
+ * Create a dom_html_select_element object
+ *
+ * \param doc The document object
+ * \param ele The returned element object
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception _dom_html_select_element_create(struct dom_document *doc,
+ struct dom_html_select_element **ele)
+{
+ *ele = _dom_document_alloc(doc, NULL, sizeof(dom_html_select_element));
+ if (*ele == NULL)
+ return DOM_NO_MEM_ERR;
+
+ /* Set up vtables */
+ struct dom_node_internal *node = (struct dom_node_internal *) *ele;
+ node->base.vtable = &_dom_element_vtable;
+ node->vtable = &_protect_vtable;
+
+ return _dom_html_select_element_initialise(doc, *ele);
+}
+
+/**
+ * Initialise a dom_html_select_element object
+ *
+ * \param doc The document object
+ * \param ele The dom_html_select_element object
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception _dom_html_select_element_initialise(struct dom_document *doc,
+ struct dom_html_select_element *ele)
+{
+ const char *str = "SELECT";
+ lwc_string *name = NULL;
+ dom_exception err;
+
+ err = _dom_document_create_lwcstring(doc, (const uint8_t *) str, SLEN(str),
+ &name);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ err = _dom_html_element_initialise(doc, &ele->base, name, NULL, NULL);
+ _dom_document_unref_lwcstring(doc, name);
+
+ ele->selected = -1;
+ ele->options = NULL;
+
+ return err;
+}
+
+/**
+ * Finalise a dom_html_select_element object
+ *
+ * \param doc The document object
+ * \param ele The dom_html_select_element object
+ */
+void _dom_html_select_element_finalise(struct dom_document *doc,
+ struct dom_html_select_element *ele)
+{
+ _dom_html_element_finalise(doc, &ele->base);
+}
+
+/**
+ * Destroy a dom_html_select_element object
+ *
+ * \param doc The document object
+ * \param ele The dom_html_select_element object
+ */
+void _dom_html_select_element_destroy(struct dom_document *doc,
+ struct dom_html_select_element *ele)
+{
+ _dom_html_select_element_finalise(doc, ele);
+ _dom_document_alloc(doc, ele, 0);
+}
+
+/*------------------------------------------------------------------------*/
+/* The protected virtual functions */
+
+/* The virtual function used to parse attribute value, see src/core/element.c
+ * for detail */
+dom_exception _dom_html_select_element_parse_attribute(dom_element *ele,
+ struct dom_string *name, struct dom_string *value,
+ struct dom_string **parsed)
+{
+ UNUSED(ele);
+ UNUSED(name);
+
+ dom_string_ref(value);
+ *parsed = value;
+
+ return DOM_NO_ERR;
+}
+
+/* The virtual destroy function, see src/core/node.c for detail */
+void _dom_virtual_html_select_element_destroy(dom_node_internal *node)
+{
+ struct dom_document *doc = dom_node_get_owner(node);
+ _dom_html_select_element_destroy(doc, (struct dom_html_select_element *) node);
+}
+
+/* The virtual allocation function, see src/core/node.c for detail */
+dom_exception _dom_html_select_element_alloc(struct dom_document *doc,
+ struct dom_node_internal *n, struct dom_node_internal **ret)
+{
+ UNUSED(n);
+
+ *ret = _dom_document_alloc(doc, NULL, sizeof(dom_html_select_element));
+ if (*ret == NULL)
+ return DOM_NO_MEM_ERR;
+
+ return DOM_NO_ERR;
+}
+
+/* The virtual copy function, see src/core/node.c for detail */
+dom_exception _dom_html_select_element_copy(struct dom_node_internal *new,
+ struct dom_node_internal *old)
+{
+ return _dom_html_element_copy(new, old);
+}
+
+/*-----------------------------------------------------------------------*/
+/* Public APIs */
+
+/**
+ * Get the ordinal index of the selected option
+ *
+ * \param ele The element object
+ * \param index The returned index
+ * \return DOM_NO_ERR on success.
+ */
+dom_exception dom_html_select_element_get_selected_index(
+ dom_html_select_element *ele, unsigned long *index)
+{
+ *index = ele->selected;
+
+ return DOM_NO_ERR;
+}
+
+/**
+ * Set the ordinal index of the selected option
+ *
+ * \param ele The element object
+ * \param index The new index
+ * \return DOM_NO_ERR on success.
+ */
+dom_exception dom_html_select_element_set_selected_index(
+ dom_html_select_element *ele, unsigned long index)
+{
+ ele->selected = index;
+
+ return DOM_NO_ERR;
+}
+
+/**
+ * Get the number of options in this select element
+ *
+ * \param ele The element object
+ * \param len The returned len
+ * \return DOM_NO_ERR on success.
+ */
+dom_exception dom_html_select_element_get_length(
+ dom_html_select_element *ele, unsigned long *len)
+{
+ dom_exception err;
+ dom_document *doc = dom_node_get_owner(ele);
+ assert(doc != NULL);
+
+ if (ele->options == NULL) {
+ err = _dom_html_options_collection_create(doc,
+ (dom_node_internal *) ele,
+ is_option, &ele->options);
+ if (err != DOM_NO_ERR)
+ return err;
+ }
+
+ return dom_html_options_collection_get_length(ele->options, len);
+}
+
+/**
+ * Set the number of options in this select element
+ *
+ * \param ele The element object
+ * \param len The new len
+ * \return DOM_NOT_SUPPORTED_ERR.
+ *
+ * todo: how to deal with set the len of the children option objects?
+ */
+dom_exception dom_html_select_element_set_length(
+ dom_html_select_element *ele, unsigned long len)
+{
+ UNUSED(ele);
+ UNUSED(len);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * The collection of OPTION elements of this element
+ *
+ * \param ele The element object
+ * \param col THe returned collection object
+ * \return DOM_NO_ERR on success.
+ */
+dom_exception dom_html_select_element_get_options(
+ dom_html_select_element *ele,
+ struct dom_html_options_collection **col)
+{
+ dom_exception err;
+ dom_document *doc = dom_node_get_owner(ele);
+ assert(doc != NULL);
+
+ if (ele->options == NULL) {
+ err = _dom_html_options_collection_create(doc,
+ (dom_node_internal *) ele,
+ is_option, &ele->options);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ *col = ele->options;
+ return DOM_NO_ERR;
+ }
+
+ dom_html_options_collection_ref(ele->options);
+ *col = ele->options;
+
+ return DOM_NO_ERR;
+}
+
+/**
+ * Whether this element is disabled
+ *
+ * \param ele The element object
+ * \param disabled The returned status
+ * \return DOM_NO_ERR on success.
+ */
+dom_exception dom_html_select_element_get_disabled(
+ dom_html_select_element *ele, bool *disabled)
+{
+ return dom_html_element_get_bool_property(&ele->base,
+ "disabled", SLEN("disabled"), disabled);
+}
+
+/**
+ * Set the disabled status of this element
+ *
+ * \param ele The element object
+ * \param disabled The disabled status
+ * \return DOM_NO_ERR on success.
+ */
+dom_exception dom_html_select_element_set_disabled(
+ dom_html_select_element *ele, bool disabled)
+{
+ return dom_html_element_set_bool_property(&ele->base,
+ "disabled", SLEN("disabled"), disabled);
+}
+
+/**
+ * Whether this element can be multiple selected
+ *
+ * \param ele The element object
+ * \param multiple The returned status
+ * \return DOM_NO_ERR on success.
+ */
+dom_exception dom_html_select_element_get_multiple(
+ dom_html_select_element *ele, bool *multiple)
+{
+ return dom_html_element_get_bool_property(&ele->base,
+ "multiple", SLEN("multiple"), multiple);
+}
+
+/**
+ * Set whether this element can be multiple selected
+ *
+ * \param ele The element object
+ * \param multiple The status
+ * \return DOM_NO_ERR on success.
+ */
+dom_exception dom_html_select_element_set_multiple(
+ dom_html_select_element *ele, bool multiple)
+{
+ return dom_html_element_set_bool_property(&ele->base,
+ "multiple", SLEN("multiple"), multiple);
+}
+
+dom_exception dom_html_select_element_get_size(
+ dom_html_select_element *ele, unsigned long *size);
+dom_exception dom_html_select_element_set_size(
+ dom_html_select_element *ele, unsigned long size);
+dom_exception dom_html_select_element_get_tab_index(
+ dom_html_select_element *ele, unsigned long *tab_index);
+dom_exception dom_html_select_element_set_tab_index(
+ dom_html_select_element *ele, unsigned long tab_index);
+
+/* Functions */
+dom_exception dom_html_select_element_add(struct dom_html_element *ele,
+ struct dom_html_element *before);
+dom_exception dom_html_element_blur(struct dom_html_select_element *ele);
+dom_exception dom_html_element_focus(struct dom_html_select_element *ele);
+
+
+/*-----------------------------------------------------------------------*/
+/* Helper functions */
+
+/* Test whether certain node is an option node */
+bool is_option(struct dom_node_internal *node)
+{
+ lwc_string *name = NULL;
+ bool ret = false;
+ dom_exception err;
+
+ err = _dom_node_create_lwcstring(node, (const uint8_t *) "OPTION",
+ SLEN("OPTION"), &name);
+ assert(err == DOM_NO_ERR);
+
+ if (name == node->name)
+ ret = true;
+
+ _dom_node_unref_intern_string(node, name);
+
+ return ret;
+}
Modified: branches/struggleyb/libdom-html/src/html/html_select_element.h
URL: http://source.netsurf-browser.org/branches/struggleyb/libdom-html/src/htm...
==============================================================================
--- branches/struggleyb/libdom-html/src/html/html_select_element.h (original)
+++ branches/struggleyb/libdom-html/src/html/html_select_element.h Fri Sep 18 04:08:21 2009
@@ -5,3 +5,56 @@
* Copyright 2009 Bo Yang <struggleyb.nku(a)gmail.com>
*/
+#ifndef dom_internal_html_select_element_h_
+#define dom_internal_html_select_element_h_
+
+#include <dom/html/html_select_element.h>
+
+#include "html/html_element.h"
+#include "html/html_options_collection.h"
+
+struct dom_html_select_element {
+ struct dom_html_element base;
+ /**< The base class */
+ long selected;
+ /**< The selected element's index */
+ dom_html_options_collection *options;
+ /**< The options objects */
+};
+
+/* Create a dom_html_select_element object */
+dom_exception _dom_html_select_element_create(struct dom_document *doc,
+ struct dom_html_select_element **ele);
+
+/* Initialise a dom_html_select_element object */
+dom_exception _dom_html_select_element_initialise(struct dom_document *doc,
+ struct dom_html_select_element *ele);
+
+/* Finalise a dom_html_select_element object */
+void _dom_html_select_element_finalise(struct dom_document *doc,
+ struct dom_html_select_element *ele);
+
+/* Destroy a dom_html_select_element object */
+void _dom_html_select_element_destroy(struct dom_document *doc,
+ struct dom_html_select_element *ele);
+
+/* The protected virtual functions */
+dom_exception _dom_html_select_element_parse_attribute(dom_element *ele,
+ struct dom_string *name, struct dom_string *value,
+ struct dom_string **parsed);
+void _dom_virtual_html_select_element_destroy(dom_node_internal *node);
+dom_exception _dom_html_select_element_alloc(struct dom_document *doc,
+ struct dom_node_internal *n, struct dom_node_internal **ret);
+dom_exception _dom_html_select_element_copy(struct dom_node_internal *new,
+ struct dom_node_internal *old);
+
+#define DOM_HTML_SELECT_ELEMENT_PROTECT_VTABLE \
+ _dom_html_select_element_parse_attribute
+
+#define DOM_NODE_PROTECT_VTABLE_HTML_SELECT_ELEMENT \
+ _dom_virtual_html_select_element_destroy, \
+ _dom_html_select_element_alloc, \
+ _dom_html_select_element_copy
+
+#endif
+
14 years
r9593 struggleyb - in /branches/struggleyb/libdom-html/src/core: node.c node.h
by netsurf@semichrome.net
Author: struggleyb
Date: Fri Sep 18 03:46:19 2009
New Revision: 9593
URL: http://source.netsurf-browser.org?rev=9593&view=rev
Log:
Add a new function for convenient use.
Modified:
branches/struggleyb/libdom-html/src/core/node.c
branches/struggleyb/libdom-html/src/core/node.h
Modified: branches/struggleyb/libdom-html/src/core/node.c
URL: http://source.netsurf-browser.org/branches/struggleyb/libdom-html/src/cor...
==============================================================================
--- branches/struggleyb/libdom-html/src/core/node.c (original)
+++ branches/struggleyb/libdom-html/src/core/node.c Fri Sep 18 03:46:19 2009
@@ -2499,6 +2499,28 @@
}
/**
+ * Create a lwc_string using the node's owner's lwc_context
+ *
+ * \param node The node object
+ * \param data The string data
+ * \param len The length of the string data
+ * \param str The returned lwc_string
+ * \return DOM_NO_ERR on success, appropirate dom_exception on failure.
+ */
+dom_exception _dom_node_create_lwcstring(dom_node_internal *node,
+ const uint8_t *data, size_t len, struct lwc_string_s **str)
+{
+ lwc_context *ctx = NULL;
+ dom_document *doc = dom_node_get_owner(node);
+
+ assert(doc != NULL);
+ ctx = _dom_document_get_intern_context(doc);
+ assert(ctx != NULL);
+
+ return _dom_document_create_lwcstring(doc, data, len, str);
+}
+
+/**
* Try to destroy this node.
*
* \param node The node to destroy
Modified: branches/struggleyb/libdom-html/src/core/node.h
URL: http://source.netsurf-browser.org/branches/struggleyb/libdom-html/src/cor...
==============================================================================
--- branches/struggleyb/libdom-html/src/core/node.h (original)
+++ branches/struggleyb/libdom-html/src/core/node.h Fri Sep 18 03:46:19 2009
@@ -288,6 +288,8 @@
struct dom_string *str, struct lwc_string_s **intern);
void _dom_node_unref_intern_string(dom_node_internal *node,
struct lwc_string_s *inter);
+dom_exception _dom_node_create_lwcstring(dom_node_internal *node,
+ const uint8_t *data, size_t len, struct lwc_string_s **str);
/* Try to destroy the node, if its refcnt is not zero, then append it to the
* owner document's pending list */
14 years
r9592 chris_y - /trunk/netsurf/amiga/gui.c
by netsurf@semichrome.net
Author: chris_y
Date: Thu Sep 17 16:44:07 2009
New Revision: 9592
URL: http://source.netsurf-browser.org?rev=9592&view=rev
Log:
Fix obviously wrong logic and tweak the status display area frame slightly so it looks
better (or at least fits in with the OS look better)
Modified:
trunk/netsurf/amiga/gui.c
Modified: trunk/netsurf/amiga/gui.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.c?rev=9592&r1=9...
==============================================================================
--- trunk/netsurf/amiga/gui.c (original)
+++ trunk/netsurf/amiga/gui.c Thu Sep 17 16:44:07 2009
@@ -2177,10 +2177,9 @@
NULL,
"frameiclass",
IA_FrameType, FRAME_DISPLAY,
- IA_Simple, TRUE,
- IA_Top, -(scrn->RastPort.TxHeight),
+ IA_Top, 1-(scrn->RastPort.TxHeight),
IA_Left, -1,
- IA_Height, 1 + scrn->WBorBottom + scrn->RastPort.TxHeight,
+ IA_Height, scrn->WBorBottom + scrn->RastPort.TxHeight,
IA_InBorder, TRUE,
TAG_DONE),
GA_Next, gwin->shared->gadgets[GID_HSCROLL],
@@ -2371,33 +2370,34 @@
if(!g) return;
if(!title) return;
+ utf8title = ami_utf8_easy((char *)title);
+
if(g->tab_node)
{
- utf8title = ami_utf8_easy((char *)title);
-
+ node = g->tab_node;
+
+ SetGadgetAttrs(g->shared->gadgets[GID_TABS],g->shared->win,NULL,
+ CLICKTAB_Labels,~0,
+ TAG_DONE);
+
+ SetClickTabNodeAttrs(node, TNA_Text, utf8title, TAG_DONE);
+ RefreshSetGadgetAttrs(g->shared->gadgets[GID_TABS], g->shared->win, NULL,
+ CLICKTAB_Labels, &g->shared->tab_list,
+ TAG_DONE);
+
+ if(ClickTabBase->lib_Version < 53)
+ RethinkLayout(g->shared->gadgets[GID_TABLAYOUT],g->shared->win,NULL,TRUE);
+ }
+
+ GetAttr(CLICKTAB_Current,g->shared->gadgets[GID_TABS],(ULONG *)&cur_tab);
+
+ if((cur_tab == g->tab) || (g->shared->tabs == 0))
+ {
if((g->shared->wintitle == NULL) || (strcmp(utf8title, g->shared->wintitle)))
{
- node = g->tab_node;
-
- SetGadgetAttrs(g->shared->gadgets[GID_TABS],g->shared->win,NULL,
- CLICKTAB_Labels,~0,
- TAG_DONE);
if(g->shared->wintitle) ami_utf8_free(g->shared->wintitle);
g->shared->wintitle = utf8title;
- SetClickTabNodeAttrs(node,TNA_Text, g->shared->wintitle, TAG_DONE);
- RefreshSetGadgetAttrs(g->shared->gadgets[GID_TABS],g->shared->win,NULL,
- CLICKTAB_Labels,&g->shared->tab_list,
- TAG_DONE);
-
- if(ClickTabBase->lib_Version < 53)
- RethinkLayout(g->shared->gadgets[GID_TABLAYOUT],g->shared->win,NULL,TRUE);
-
- GetAttr(CLICKTAB_Current,g->shared->gadgets[GID_TABS],(ULONG *)&cur_tab);
-
- if((cur_tab == g->tab) || (g->shared->tabs == 0))
- {
- SetWindowTitles(g->shared->win, g->shared->wintitle, nsscreentitle);
- }
+ SetWindowTitles(g->shared->win, g->shared->wintitle, nsscreentitle);
}
}
}
14 years