Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/864762cbe60d04ba978dd...
...commit
http://git.netsurf-browser.org/netsurf.git/commit/864762cbe60d04ba978ddbd...
...tree
http://git.netsurf-browser.org/netsurf.git/tree/864762cbe60d04ba978ddbd9b...
The branch, master has been updated
via 864762cbe60d04ba978ddbd9bf125240dd26f631 (commit)
via fe2a80fe109e0e8dc60957ded5a93b39f429e1f1 (commit)
via ddbc8c7f6350f9978cc50deae74ecb4c053d790e (commit)
via 2bce0185fe219181312ac377e659790291931e36 (commit)
via f16f2f2904bd554955dd601f4c404489cff3439f (commit)
via 36b40e219a8edc587d6a196af83c4b30a94f200b (commit)
via 034ba7c2f2077bbc4f20628971bf2b061031ff9f (commit)
from 9b39408dffe09940589c2f00026c0e605d836b78 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=864762cbe60d04ba978...
commit 864762cbe60d04ba978ddbd9bf125240dd26f631
Merge: 9b39408 fe2a80f
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Merge branch 'chris/gadtools-53-5'
-----------------------------------------------------------------------
Summary of changes:
amiga/menu.c | 47 ++++++++++++++++++++++++++++++-----------------
desktop/tree.c | 11 +++++++++++
desktop/tree.h | 1 +
desktop/tree_url_node.c | 11 +++++++++++
desktop/tree_url_node.h | 1 +
5 files changed, 54 insertions(+), 17 deletions(-)
diff --git a/amiga/menu.c b/amiga/menu.c
index 5cd7e6a..d5e67b9 100644
--- a/amiga/menu.c
+++ b/amiga/menu.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2008-9 Chris Young <chris(a)unsatisfactorysoftware.co.uk>
+ * Copyright 2008-9,2013 Chris Young <chris(a)unsatisfactorysoftware.co.uk>
*
* This file is part of NetSurf,
http://www.netsurf-browser.org/
*
@@ -64,17 +64,6 @@
#include "utils/messages.h"
#include "utils/schedule.h"
-#define IMAGE_MENU_ITEM(n, i, t) \
- gwin->menulab[n] = LabelObject, \
- LABEL_DrawInfo, dri, \
- LABEL_DisposeImage, TRUE, \
- LABEL_Image, BitMapObject, \
- BITMAP_Screen, scrn, \
- BITMAP_SourceFile, i, \
- BitMapEnd, \
- LABEL_Text, t, \
- LabelEnd;
-
BOOL menualreadyinit;
const char * const netsurf_version;
const char * const verdate;
@@ -169,7 +158,33 @@ static void ami_menu_alloc_item(struct gui_window_2 *gwin, int num,
UBYTE type,
gwin->menulab[num] = ami_utf8_easy(messages_get(label));
}
}
-
+
+ if((GadToolsBase->lib_Version > 53) ||
+ ((GadToolsBase->lib_Version == 53) && (GadToolsBase->lib_Revision >=
5))) {
+ /* GadTools 53.5+ only. For now we will only create the menu
+ using label.image if there's a bitmap associated with the item. */
+ if(bm != NULL) {
+ struct DrawInfo *dri = GetScreenDrawInfo(scrn);
+ struct BitMap *menu_icon = ami_bitmap_get_native(bm, 16, 16, NULL);
+
+ gwin->menuobj[num] = LabelObject,
+ LABEL_DrawInfo, dri,
+ LABEL_DisposeImage, TRUE,
+ LABEL_Image, BitMapObject,
+ BITMAP_Screen, scrn,
+ BITMAP_BitMap, menu_icon,
+ BITMAP_Width, 16,
+ BITMAP_Height, 16,
+ BitMapEnd,
+ LABEL_Text, gwin->menulab[num],
+ LabelEnd;
+
+ gwin->menutype[num] |= MENU_IMAGE;
+
+ FreeScreenDrawInfo(scrn, dri);
+ }
+ }
+
if(key) gwin->menukey[num] = key;
if(func) gwin->menu_hook[num].h_Entry = (HOOKFUNC)func;
if(hookdata) gwin->menu_hook[num].h_Data = hookdata;
@@ -178,7 +193,6 @@ static void ami_menu_alloc_item(struct gui_window_2 *gwin, int num,
UBYTE type,
void ami_init_menulabs(struct gui_window_2 *gwin)
{
int i;
- struct DrawInfo *dri = GetScreenDrawInfo(scrn);
gwin->menutype = AllocVec(AMI_MENU_AREXX_MAX + 1, MEMF_PRIVATE | MEMF_CLEAR);
@@ -290,8 +304,6 @@ void ami_init_menulabs(struct gui_window_2 *gwin)
ami_menu_item_arexx_execute, NULL);
ami_menu_alloc_item(gwin, M_BAR_A1, NM_ITEM, NM_BARLABEL, 0, NULL, NULL, NULL);
gwin->menutype[AMI_MENU_AREXX_MAX] = NM_END;
-
- FreeScreenDrawInfo(scrn, dri);
}
/* Menu refresh for hotlist */
@@ -458,7 +470,8 @@ void ami_menu_scan_2(struct tree *tree, struct node *root, WORD *gen,
if(*gen == 1) menu_type = NM_ITEM;
if(*gen == 2) menu_type = NM_SUB;
- ami_menu_alloc_item(gwin, *item, menu_type, tree_url_node_get_title(node), 0, NULL,
+ ami_menu_alloc_item(gwin, *item, menu_type, tree_url_node_get_title(node),
+ 0, tree_url_node_get_icon(node),
ami_menu_item_hotlist_entries, (void *)tree_url_node_get_url(node));
if(tree_node_is_folder(node) && (!tree_node_get_child(node)))
gwin->menu[*item].nm_Flags = NM_ITEMDISABLED;
diff --git a/desktop/tree.c b/desktop/tree.c
index 25bd948..2e35b5b 100644
--- a/desktop/tree.c
+++ b/desktop/tree.c
@@ -1552,6 +1552,17 @@ const char *tree_node_element_get_text(struct node_element
*element)
/**
+ * Returns the node element's icon
+ *
+ * \return the node element's icon
+ */
+struct bitmap *tree_node_element_get_icon(struct node_element *element)
+{
+ return element->bitmap;
+}
+
+
+/**
* Get the root node of a tree
*
* \param tree the tree to get the root of
diff --git a/desktop/tree.h b/desktop/tree.h
index 00ac999..20ade30 100644
--- a/desktop/tree.h
+++ b/desktop/tree.h
@@ -200,6 +200,7 @@ void tree_update_node_element(struct tree *tree, struct node_element
*element,
const char *text, void *bitmap);
bool tree_update_element_text(struct tree *tree, struct node_element *element, char
*text);
const char *tree_node_element_get_text(struct node_element *element);
+struct bitmap *tree_node_element_get_icon(struct node_element *element);
struct node *tree_get_root(struct tree *tree);
bool tree_is_edited(struct tree *tree);
tree_drag_type tree_drag_status(struct tree *tree);
diff --git a/desktop/tree_url_node.c b/desktop/tree_url_node.c
index 945893f..8472fff 100644
--- a/desktop/tree_url_node.c
+++ b/desktop/tree_url_node.c
@@ -339,6 +339,17 @@ const char *tree_url_node_get_url(struct node *node)
return tree_node_element_get_text(element);
}
+
+struct bitmap *tree_url_node_get_icon(struct node *node)
+{
+ struct node_element *element;
+ element = tree_node_find_element(node, TREE_ELEMENT_TITLE, NULL);
+ if (element == NULL)
+ return NULL;
+ return tree_node_element_get_icon(element);
+}
+
+
void tree_url_node_edit_title(struct tree *tree, struct node *node)
{
struct node_element *element;
diff --git a/desktop/tree_url_node.h b/desktop/tree_url_node.h
index 1f0231d..bcbc192 100644
--- a/desktop/tree_url_node.h
+++ b/desktop/tree_url_node.h
@@ -43,6 +43,7 @@ void tree_update_URL_node(struct tree *tree, struct node *node,
nsurl *url, const struct url_data *data);
const char *tree_url_node_get_title(struct node *node);
const char *tree_url_node_get_url(struct node *node);
+struct bitmap *tree_url_node_get_icon(struct node *node);
void tree_url_node_edit_title(struct tree *tree, struct node *node);
void tree_url_node_edit_url(struct tree *tree, struct node *node);
--
NetSurf Browser