r10931 chris_y - in /trunk/libwebp: makefile webpimg.h
by netsurf@semichrome.net
Author: chris_y
Date: Sun Oct 31 12:06:44 2010
New Revision: 10931
URL: http://source.netsurf-browser.org?rev=10931&view=rev
Log:
More sane archive creation
Avoid type conflicts in header
Modified:
trunk/libwebp/makefile
trunk/libwebp/webpimg.h
Modified: trunk/libwebp/makefile
URL: http://source.netsurf-browser.org/trunk/libwebp/makefile?rev=10931&r1=109...
==============================================================================
--- trunk/libwebp/makefile (original)
+++ trunk/libwebp/makefile Sun Oct 31 12:06:44 2010
@@ -32,6 +32,7 @@
######################################################################
libwebp.a: libwebp.o
+ rm libwebp.a
$(AR) -q libwebp.a libwebp.o
libwebp.o: webpimg.c
Modified: trunk/libwebp/webpimg.h
URL: http://source.netsurf-browser.org/trunk/libwebp/webpimg.h?rev=10931&r1=10...
==============================================================================
--- trunk/libwebp/webpimg.h (original)
+++ trunk/libwebp/webpimg.h Sun Oct 31 12:06:44 2010
@@ -38,9 +38,12 @@
extern "C" {
#endif /* __cplusplus */
-//#include <exec/types.h>
+#ifdef __amigaos4__
+#include <exec/types.h>
+#else
typedef unsigned char uint8;
typedef unsigned int uint32;
+#endif
typedef enum WebPResultType {
webp_success = 0,
webp_failure = -1
12 years, 10 months
r10930 chris_y - /trunk/netsurf/amiga/dist/NetSurf.guide
by netsurf@semichrome.net
Author: chris_y
Date: Sun Oct 31 10:41:21 2010
New Revision: 10930
URL: http://source.netsurf-browser.org?rev=10930&view=rev
Log:
Keyboard shortcut section (credit: Samir Hawamdeh)
Modified:
trunk/netsurf/amiga/dist/NetSurf.guide
Modified: trunk/netsurf/amiga/dist/NetSurf.guide
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/dist/NetSurf.guide?...
==============================================================================
--- trunk/netsurf/amiga/dist/NetSurf.guide (original)
+++ trunk/netsurf/amiga/dist/NetSurf.guide Sun Oct 31 10:41:21 2010
@@ -6,20 +6,21 @@
@{b}NetSurf@{ub} Amiga-specific documentation
http://www.netsurf-browser.org
-@{"Change Log " link ChangeLog/Main}
-
-@{"Licence " link COPYING/Main}
-@{"Command line options" link CLI}
-@{"Options file " link Options}
-@{"Fonts " link Fonts}
-@{"ARexx port " link ARexx}
-@{"OpenURL/URL Prefs " link OpenURL}
-@{"Hotlist menu " link Hotlist}
-@{"Local MIME types " link MIMETypes}
-
-@{"Optimising for speed" link Speed}
-
-@{"Credits " link Contact}
+@{" Change Log " link ChangeLog/Main}
+
+@{" Licence " link COPYING/Main}
+@{" Command line options " link CLI}
+@{" Options file " link Options}
+@{" Fonts " link Fonts}
+@{" ARexx port " link ARexx}
+@{" OpenURL/URL Prefs " link OpenURL}
+@{" Hotlist menu " link Hotlist}
+@{" Local MIME types " link MIMETypes}
+@{" Keyboard controls " link Keyboard}
+
+@{" Optimising for speed " link Speed}
+
+@{" Credits " link Contact}
@endnode
@node cli "Command line options"
@@ -75,7 +76,8 @@
The file "Theme" in the theme directory contains the files used for that theme. See @{"Default Theme file" link Resources/Themes/Default/Theme/Main} for more details.
-Theme directories should be copied and renamed if themes are modified, as update installation of NetSurf will overwrite any changes. AmigaOS NetSurf themes are not compatible with NetSurf for other platforms.
+Theme directories should be copied and renamed if themes are modified, as update installation of NetSurf will overwrite any changes.
+AmigaOS NetSurf themes are not compatible with NetSurf for other platforms.
@endnode
@node arexx "ARexx port"
@@ -206,6 +208,32 @@
2. The icon ENVARC:Sys/def_<filetype> contains the MIMETYPE tooltype.
@endnode
+@node Keyboard Controls "Keyboard"
+This is a list of keyboard shortcuts used on NetSurf
+
+- RAmiga-R or F5 (reload the current page)
+- PageUp/Down or Home/End (scroll the page)
+- RAmiga-U (activate the URL bar)
+- Alt+Left/Right (keyboard navigation of tabs)
+
+Keyboard shortcuts used on NetSurf GUI
+
+- RAmiga-T (open a new tab)
+- RAmiga-O (open a local file)
+- RAmiga-P (print a page)
+- RAmiga-? (about NetSurf)
+- RAmiga-Q (quit NetSurf)
+- RAmiga-X (cut)
+- RAmiga-C (copy)
+- RAmiga-V (paste)
+- RAmiga-Z (clear selection)
+- RAmiga-F (find a string/text)
+- RAmiga-- (decrease font)
+- RAmiga-= (normal font)
+- RAmiga-+ (increase font)
+
+@endnode
+
@node Speed "Optimising for speed"
There are a number of options which can be changed that will affect the speed of NetSurf's rendering. Here are a list of the fastest settings which may help decrease rendering time on slower platforms:
12 years, 10 months
r10929 chris_y - /trunk/netsurf/content/content.c
by netsurf@semichrome.net
Author: chris_y
Date: Sun Oct 31 08:27:31 2010
New Revision: 10929
URL: http://source.netsurf-browser.org?rev=10929&view=rev
Log:
Fix compilation
Modified:
trunk/netsurf/content/content.c
Modified: trunk/netsurf/content/content.c
URL: http://source.netsurf-browser.org/trunk/netsurf/content/content.c?rev=109...
==============================================================================
--- trunk/netsurf/content/content.c (original)
+++ trunk/netsurf/content/content.c Sun Oct 31 08:27:31 2010
@@ -383,7 +383,7 @@
0, webp_destroy, 0, 0, 0, webp_redraw, 0,
0, 0, webp_clone, false},
#endif
-#ifdef WITH_WEBP
+#ifdef WITH_AMIGA_ICON
{0, 0, amiga_icon_convert,
0, amiga_icon_destroy, 0, 0, 0, amiga_icon_redraw, 0,
0, 0, amiga_icon_clone, false},
12 years, 10 months
r10928 chris_y - in /trunk/netsurf/amiga: Makefile.target download.c download.h icon.c icon.h misc.c
by netsurf@semichrome.net
Author: chris_y
Date: Sun Oct 31 06:14:26 2010
New Revision: 10928
URL: http://source.netsurf-browser.org?rev=10928&view=rev
Log:
Support ColourIcons
Modified:
trunk/netsurf/amiga/Makefile.target
trunk/netsurf/amiga/download.c
trunk/netsurf/amiga/download.h
trunk/netsurf/amiga/icon.c
trunk/netsurf/amiga/icon.h
trunk/netsurf/amiga/misc.c
Modified: trunk/netsurf/amiga/Makefile.target
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/Makefile.target?rev...
==============================================================================
--- trunk/netsurf/amiga/Makefile.target (original)
+++ trunk/netsurf/amiga/Makefile.target Sun Oct 31 06:14:26 2010
@@ -26,7 +26,9 @@
ifeq ($(NETSURF_AMIGA_USE_CAIRO),YES)
CFLAGS += -DNS_AMIGA_CAIRO -I /SDK/local/common/include/cairo
LDFLAGS += -use-dynld -ldl -lcairo -lpixman-1 -lfreetype -lfontconfig -lpng -lexpat
- SUBTARGET := -cairo
+ EXETARGET := NetSurf-Cairo
+else
+ EXETARGET := NetSurf
endif
# ----------------------------------------------------------------------------
@@ -45,4 +47,3 @@
# complete source file list
SOURCES := $(S_COMMON) $(S_IMAGE) $(S_BROWSER) $(S_AMIGA) $(S_PDF)
-EXETARGET := NetSurf$(SUBTARGET)
Modified: trunk/netsurf/amiga/download.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/download.c?rev=1092...
==============================================================================
--- trunk/netsurf/amiga/download.c (original)
+++ trunk/netsurf/amiga/download.c Sun Oct 31 06:14:26 2010
@@ -27,10 +27,10 @@
#include <proto/icon.h>
#include <proto/application.h>
-#include <graphics/blitattr.h>
#include <workbench/icon.h>
#include "amiga/download.h"
+#include "amiga/icon.h"
#include "amiga/object.h"
#include "amiga/options.h"
#include "amiga/bitmap.h"
@@ -325,84 +325,3 @@
ami_update_pointer(g->shared->win,GUI_POINTER_DEFAULT);
}
}
-
-void ami_superimpose_favicon(STRPTR path, struct hlcache_handle *icon, STRPTR type)
-{
- struct DiskObject *dobj = NULL;
- struct BitMap *bm = NULL;
- ULONG *icondata1, *icondata2;
- ULONG width, height;
- long format = 0;
- int err = 0;
-
- if(!type)
- {
- dobj = GetIconTags(NULL,
- ICONGETA_GetDefaultType, WBDRAWER,
- TAG_DONE);
- }
- else
- {
- dobj = GetIconTags(NULL, ICONGETA_GetDefaultName, type,
- ICONGETA_GetDefaultType, WBPROJECT,
- TAG_DONE);
- }
-
- err = IconControl(dobj,
- ICONCTRLA_GetImageDataFormat,&format,
- ICONCTRLA_GetImageData1,&icondata1,
- ICONCTRLA_GetImageData2,&icondata2,
- ICONCTRLA_GetWidth,&width,
- ICONCTRLA_GetHeight,&height,
- TAG_DONE);
-
- /* Check icon is direct mapped (truecolour).
- * Quite a bit more code is needed for palette mapped and planar icons,
- * and OS4 default icons should all be truecolour anyway. */
- if(format == IDFMT_DIRECTMAPPED)
- {
- if ((icon != NULL) && (content_get_type(icon) == CONTENT_ICO))
- {
- nsico_set_bitmap_from_size(icon, 16, 16);
- }
-
- if ((icon != NULL) && (content_get_bitmap(icon) != NULL))
- {
- bm = ami_getcachenativebm(content_get_bitmap(icon), 16, 16, NULL);
- }
-
- if(bm)
- {
- BltBitMapTags(BLITA_SrcX, 0,
- BLITA_SrcY, 0,
- BLITA_DestX, width - 16,
- BLITA_DestY, height - 16,
- BLITA_Width, 16,
- BLITA_Height, 16,
- BLITA_Source, bm,
- BLITA_Dest, icondata1,
- BLITA_SrcType, BLITT_BITMAP,
- BLITA_DestType, BLITT_ARGB32,
- BLITA_DestBytesPerRow, width * 4,
- BLITA_UseSrcAlpha, TRUE,
- TAG_DONE);
-
- BltBitMapTags(BLITA_SrcX, 0,
- BLITA_SrcY, 0,
- BLITA_DestX, width - 16,
- BLITA_DestY, height - 16,
- BLITA_Width, 16,
- BLITA_Height, 16,
- BLITA_Source, bm,
- BLITA_Dest, icondata2,
- BLITA_SrcType, BLITT_BITMAP,
- BLITA_DestType, BLITT_ARGB32,
- BLITA_DestBytesPerRow, width * 4,
- BLITA_UseSrcAlpha, TRUE,
- TAG_DONE);
- }
- }
-
- PutIconTags(path, dobj,
- ICONPUTA_NotifyWorkbench, TRUE, TAG_DONE);
-}
Modified: trunk/netsurf/amiga/download.h
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/download.h?rev=1092...
==============================================================================
--- trunk/netsurf/amiga/download.h (original)
+++ trunk/netsurf/amiga/download.h Sun Oct 31 06:14:26 2010
@@ -45,5 +45,4 @@
void ami_download_window_abort(struct gui_download_window *dw);
BOOL ami_download_window_event(struct gui_download_window *dw);
void ami_free_download_list(struct List *dllist);
-void ami_superimpose_favicon(STRPTR path, struct hlcache_handle *icon, STRPTR type);
#endif
Modified: trunk/netsurf/amiga/icon.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/icon.c?rev=10928&r1...
==============================================================================
--- trunk/netsurf/amiga/icon.c (original)
+++ trunk/netsurf/amiga/icon.c Sun Oct 31 06:14:26 2010
@@ -1,4 +1,4 @@
- /*
+/*
* Copyright 2010 Chris Young <chris(a)unsatisfactorysoftware.co.uk>
*
* This file is part of NetSurf, http://www.netsurf-browser.org/
@@ -22,16 +22,20 @@
*/
#include "utils/config.h"
-#ifdef WITH_AMIGA_ICON
#include <assert.h>
#include <string.h>
#include <stdlib.h>
+#include <proto/exec.h>
#include <proto/icon.h>
+#include <datatypes/pictureclass.h>
+#include <graphics/blitattr.h>
#include <workbench/icon.h>
+#include "amiga/bitmap.h"
+#include "amiga/icon.h"
#include "desktop/plotters.h"
#include "image/bitmap.h"
#include "content/content_protected.h"
@@ -39,6 +43,11 @@
#include "utils/messages.h"
#include "utils/utils.h"
#include "utils/url.h"
+
+ULONG *amiga_icon_convertcolouricon32(UBYTE *icondata, ULONG width, ULONG height,
+ ULONG trans, ULONG pals1, struct ColorRegister *pal1, int alpha);
+
+#ifdef WITH_AMIGA_ICON
/**
* Convert a CONTENT_AMIGA_ICON for display.
@@ -61,6 +70,8 @@
char *url;
char *filename;
char *p;
+ ULONG trans, pals1;
+ struct ColorRegister *pal1;
url = content__get_url(c);
filename = url_to_path(url);
@@ -91,26 +102,40 @@
ICONCTRLA_GetHeight,&height,
TAG_DONE);
- /* Check icon is direct mapped (truecolour).
- We need additional code to handle ColourIcons and planar icons */
- if(format != IDFMT_DIRECTMAPPED) return false;
+ /* Check icon is direct mapped (truecolour) or palette-mapped colour.
+ We need additional code to handle planar icons */
+ if((format != IDFMT_DIRECTMAPPED) && (format==IDFMT_PALETTEMAPPED))
+ return false;
c->bitmap = bitmap_create(width, height, BITMAP_NEW);
if (!c->bitmap) {
msg_data.error = messages_get("NoMemory");
content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
+ if(dobj) FreeDiskObject(dobj);
return false;
}
imagebuf = bitmap_get_buffer(c->bitmap);
if (!imagebuf) {
msg_data.error = messages_get("NoMemory");
content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
+ if(dobj) FreeDiskObject(dobj);
return false;
}
err = IconControl(dobj,
ICONCTRLA_GetImageData1, &imagebufptr,
TAG_DONE);
+
+ if(format==IDFMT_PALETTEMAPPED)
+ {
+ IconControl(dobj, ICONCTRLA_GetTransparentColor1, &trans,
+ ICONCTRLA_GetPalette1, &pal1,
+ ICONCTRLA_GetPaletteSize1, &pals1,
+ TAG_DONE);
+
+ imagebufptr = amiga_icon_convertcolouricon32((UBYTE *)imagebufptr,
+ width, height, trans, pals1, pal1, 0xff);
+ }
/* Decoded data is ARGB, so ensure correct byte order */
@@ -131,8 +156,10 @@
bitmap_modified(c->bitmap);
c->status = CONTENT_STATUS_DONE;
-
content_set_status(c, "");
+
+ if(dobj) FreeDiskObject(dobj);
+
return true;
}
@@ -167,11 +194,136 @@
/* Simply replay convert */
if (old->status == CONTENT_STATUS_READY ||
old->status == CONTENT_STATUS_DONE) {
- if (webp_convert(new_content) == false)
+ if (amiga_icon_convert(new_content) == false)
return false;
}
return true;
}
-
-#endif
+#endif /* WITH_AMIGA_ICON */
+
+ULONG *amiga_icon_convertcolouricon32(UBYTE *icondata, ULONG width, ULONG height,
+ ULONG trans, ULONG pals1, struct ColorRegister *pal1, int alpha)
+{
+ ULONG *argbicon;
+ struct ColorRegister *colour;
+ struct ColorMap *cmap;
+ int i;
+ ULONG a,r,g,b;
+
+ if (alpha==0) alpha=0xff;
+
+ argbicon = (ULONG *)AllocVec(width*height*4,MEMF_CLEAR);
+ if (!argbicon) return(NULL);
+
+ cmap=GetColorMap(pals1);
+ if(!cmap) return(NULL);
+
+ for(i=0;i<(width*height);i++)
+ {
+ colour = &pal1[icondata[i]];
+
+ if(icondata[i] == trans)
+ {
+ a=0x00;
+ }
+ else
+ {
+ a=alpha;
+ }
+
+ r = colour->red;
+ g = colour->green;
+ b = colour->blue;
+
+ argbicon[i] = (a << 24) +
+ (r << 16) +
+ (g << 8) +
+ (b);
+ }
+
+ return(argbicon);
+
+}
+
+void ami_superimpose_favicon(char *path, struct hlcache_handle *icon, char *type)
+{
+ struct DiskObject *dobj = NULL;
+ struct BitMap *bm = NULL;
+ ULONG *icondata1, *icondata2;
+ ULONG width, height;
+ long format = 0;
+ int err = 0;
+
+ if(!type)
+ {
+ dobj = GetIconTags(NULL,
+ ICONGETA_GetDefaultType, WBDRAWER,
+ TAG_DONE);
+ }
+ else
+ {
+ dobj = GetIconTags(NULL, ICONGETA_GetDefaultName, type,
+ ICONGETA_GetDefaultType, WBPROJECT,
+ TAG_DONE);
+ }
+
+ err = IconControl(dobj,
+ ICONCTRLA_GetImageDataFormat,&format,
+ ICONCTRLA_GetImageData1,&icondata1,
+ ICONCTRLA_GetImageData2,&icondata2,
+ ICONCTRLA_GetWidth,&width,
+ ICONCTRLA_GetHeight,&height,
+ TAG_DONE);
+
+ /* Check icon is direct mapped (truecolour).
+ * Quite a bit more code is needed for palette mapped and planar icons,
+ * and OS4 default icons should all be truecolour anyway. */
+ if(format == IDFMT_DIRECTMAPPED)
+ {
+ if ((icon != NULL) && (content_get_type(icon) == CONTENT_ICO))
+ {
+ nsico_set_bitmap_from_size(icon, 16, 16);
+ }
+
+ if ((icon != NULL) && (content_get_bitmap(icon) != NULL))
+ {
+ bm = ami_getcachenativebm(content_get_bitmap(icon), 16, 16, NULL);
+ }
+
+ if(bm)
+ {
+ BltBitMapTags(BLITA_SrcX, 0,
+ BLITA_SrcY, 0,
+ BLITA_DestX, width - 16,
+ BLITA_DestY, height - 16,
+ BLITA_Width, 16,
+ BLITA_Height, 16,
+ BLITA_Source, bm,
+ BLITA_Dest, icondata1,
+ BLITA_SrcType, BLITT_BITMAP,
+ BLITA_DestType, BLITT_ARGB32,
+ BLITA_DestBytesPerRow, width * 4,
+ BLITA_UseSrcAlpha, TRUE,
+ TAG_DONE);
+
+ BltBitMapTags(BLITA_SrcX, 0,
+ BLITA_SrcY, 0,
+ BLITA_DestX, width - 16,
+ BLITA_DestY, height - 16,
+ BLITA_Width, 16,
+ BLITA_Height, 16,
+ BLITA_Source, bm,
+ BLITA_Dest, icondata2,
+ BLITA_SrcType, BLITT_BITMAP,
+ BLITA_DestType, BLITT_ARGB32,
+ BLITA_DestBytesPerRow, width * 4,
+ BLITA_UseSrcAlpha, TRUE,
+ TAG_DONE);
+ }
+ }
+
+ PutIconTags(path, dobj,
+ ICONPUTA_NotifyWorkbench, TRUE, TAG_DONE);
+}
+
Modified: trunk/netsurf/amiga/icon.h
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/icon.h?rev=10928&r1...
==============================================================================
--- trunk/netsurf/amiga/icon.h (original)
+++ trunk/netsurf/amiga/icon.h Sun Oct 31 06:14:26 2010
@@ -27,8 +27,7 @@
#ifdef WITH_AMIGA_ICON
#include <stdbool.h>
-
-struct content;
+#include "content/hlcache.h"
struct content_amiga_icon_data {
/* empty */
@@ -44,4 +43,5 @@
#endif /* WITH_AMIGA_ICON */
+void ami_superimpose_favicon(char *path, struct hlcache_handle *icon, char *type);
#endif
Modified: trunk/netsurf/amiga/misc.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/misc.c?rev=10928&r1...
==============================================================================
--- trunk/netsurf/amiga/misc.c (original)
+++ trunk/netsurf/amiga/misc.c Sun Oct 31 06:14:26 2010
@@ -110,6 +110,7 @@
DevNameFromLock(lock, newpath, sizeof newpath, DN_FULLPATH);
UnLock(lock);
}
+ else strncpy(newpath, path, sizeof newpath);
r = malloc(strlen(newpath) + SLEN("file:///") + 1);
12 years, 10 months
r10927 chris_y - in /branches/jmb/treeview-redux/amiga/resources/Themes: AISS/Theme Default/Theme
by netsurf@semichrome.net
Author: chris_y
Date: Sat Oct 30 09:31:11 2010
New Revision: 10927
URL: http://source.netsurf-browser.org?rev=10927&view=rev
Log:
Revert branch theme files back
Modified:
branches/jmb/treeview-redux/amiga/resources/Themes/AISS/Theme
branches/jmb/treeview-redux/amiga/resources/Themes/Default/Theme
Modified: branches/jmb/treeview-redux/amiga/resources/Themes/AISS/Theme
URL: http://source.netsurf-browser.org/branches/jmb/treeview-redux/amiga/resou...
==============================================================================
--- branches/jmb/treeview-redux/amiga/resources/Themes/AISS/Theme (original)
+++ branches/jmb/treeview-redux/amiga/resources/Themes/AISS/Theme Sat Oct 30 09:31:11 2010
@@ -24,6 +24,8 @@
theme_addtab:*TBImages:list_add
theme_addtab_s:*TBImages:list_add
theme_addtab_g:*TBImages:list_add
+theme_list_folder:*TBImages:list_drawer
+theme_list_content:*TBImages:list_abstract
theme_throbber:Throbber
theme_throbber_frames:13
theme_throbber_delay:100
Modified: branches/jmb/treeview-redux/amiga/resources/Themes/Default/Theme
URL: http://source.netsurf-browser.org/branches/jmb/treeview-redux/amiga/resou...
==============================================================================
--- branches/jmb/treeview-redux/amiga/resources/Themes/Default/Theme (original)
+++ branches/jmb/treeview-redux/amiga/resources/Themes/Default/Theme Sat Oct 30 09:31:11 2010
@@ -37,6 +37,8 @@
theme_addtab:
theme_addtab_s:
theme_addtab_g:
+theme_list_folder:directory.png
+theme_list_content:content.png
theme_throbber:Throbber
theme_throbber_frames:9
theme_throbber_delay:100
12 years, 10 months
r10926 chris_y - in /trunk/netsurf/amiga/resources/Themes: AISS/Theme Default/Theme Default/content.png Default/directory.png
by netsurf@semichrome.net
Author: chris_y
Date: Sat Oct 30 09:30:26 2010
New Revision: 10926
URL: http://source.netsurf-browser.org?rev=10926&view=rev
Log:
Previous commit should have all gone to trunk
Removed:
trunk/netsurf/amiga/resources/Themes/Default/content.png
trunk/netsurf/amiga/resources/Themes/Default/directory.png
Modified:
trunk/netsurf/amiga/resources/Themes/AISS/Theme
trunk/netsurf/amiga/resources/Themes/Default/Theme
Modified: trunk/netsurf/amiga/resources/Themes/AISS/Theme
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/resources/Themes/AI...
==============================================================================
--- trunk/netsurf/amiga/resources/Themes/AISS/Theme (original)
+++ trunk/netsurf/amiga/resources/Themes/AISS/Theme Sat Oct 30 09:30:26 2010
@@ -24,8 +24,6 @@
theme_addtab:*TBImages:list_add
theme_addtab_s:*TBImages:list_add
theme_addtab_g:*TBImages:list_add
-theme_list_folder:*TBImages:list_drawer
-theme_list_content:*TBImages:list_abstract
theme_throbber:Throbber
theme_throbber_frames:13
theme_throbber_delay:100
Modified: trunk/netsurf/amiga/resources/Themes/Default/Theme
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/resources/Themes/De...
==============================================================================
--- trunk/netsurf/amiga/resources/Themes/Default/Theme (original)
+++ trunk/netsurf/amiga/resources/Themes/Default/Theme Sat Oct 30 09:30:26 2010
@@ -37,8 +37,6 @@
theme_addtab:
theme_addtab_s:
theme_addtab_g:
-theme_list_folder:directory.png
-theme_list_content:content.png
theme_throbber:Throbber
theme_throbber_frames:9
theme_throbber_delay:100
Removed: trunk/netsurf/amiga/resources/Themes/Default/content.png
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/resources/Themes/De...
==============================================================================
--- trunk/netsurf/amiga/resources/Themes/Default/content.png (original)
+++ trunk/netsurf/amiga/resources/Themes/Default/content.png (removed)
@@ -1,1 +1,0 @@
-link ../../../../!NetSurf/Resources/Icons/content.png
Removed: trunk/netsurf/amiga/resources/Themes/Default/directory.png
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/resources/Themes/De...
==============================================================================
--- trunk/netsurf/amiga/resources/Themes/Default/directory.png (original)
+++ trunk/netsurf/amiga/resources/Themes/Default/directory.png (removed)
@@ -1,1 +1,0 @@
-link ../../../../!NetSurf/Resources/Icons/directory.png
12 years, 10 months
r10925 chris_y - /branches/jmb/treeview-redux/amiga/resources/Themes/AISS/ /branches/jmb/treeview-redux/amiga/resources/Themes/Default/ /trunk/netsurf/ /trunk/netsurf/amiga/ /trunk/netsurf/content/ /trunk/netsurf/desktop/ /trunk/netsurf/render/
by netsurf@semichrome.net
Author: chris_y
Date: Sat Oct 30 09:23:38 2010
New Revision: 10925
URL: http://source.netsurf-browser.org?rev=10925&view=rev
Log:
Amiga icon loader. Treeviews will now use the user's icons for content types.
Added:
trunk/netsurf/amiga/icon.c (with props)
trunk/netsurf/amiga/icon.h (with props)
Removed:
branches/jmb/treeview-redux/amiga/resources/Themes/Default/content.png
branches/jmb/treeview-redux/amiga/resources/Themes/Default/directory.png
Modified:
branches/jmb/treeview-redux/amiga/resources/Themes/AISS/Theme
branches/jmb/treeview-redux/amiga/resources/Themes/Default/Theme
trunk/netsurf/Makefile.defaults
trunk/netsurf/amiga/Makefile.target
trunk/netsurf/amiga/filetype.c
trunk/netsurf/amiga/gui.c
trunk/netsurf/amiga/tree.c
trunk/netsurf/content/content.c
trunk/netsurf/content/content_protected.h
trunk/netsurf/content/content_type.h
trunk/netsurf/desktop/tree_url_node.c
trunk/netsurf/render/box.c
trunk/netsurf/render/box_construct.c
Modified: branches/jmb/treeview-redux/amiga/resources/Themes/AISS/Theme
URL: http://source.netsurf-browser.org/branches/jmb/treeview-redux/amiga/resou...
==============================================================================
--- branches/jmb/treeview-redux/amiga/resources/Themes/AISS/Theme (original)
+++ branches/jmb/treeview-redux/amiga/resources/Themes/AISS/Theme Sat Oct 30 09:23:38 2010
@@ -24,8 +24,6 @@
theme_addtab:*TBImages:list_add
theme_addtab_s:*TBImages:list_add
theme_addtab_g:*TBImages:list_add
-theme_list_folder:*TBImages:list_drawer
-theme_list_content:*TBImages:list_abstract
theme_throbber:Throbber
theme_throbber_frames:13
theme_throbber_delay:100
Modified: branches/jmb/treeview-redux/amiga/resources/Themes/Default/Theme
URL: http://source.netsurf-browser.org/branches/jmb/treeview-redux/amiga/resou...
==============================================================================
--- branches/jmb/treeview-redux/amiga/resources/Themes/Default/Theme (original)
+++ branches/jmb/treeview-redux/amiga/resources/Themes/Default/Theme Sat Oct 30 09:23:38 2010
@@ -37,8 +37,6 @@
theme_addtab:
theme_addtab_s:
theme_addtab_g:
-theme_list_folder:directory.png
-theme_list_content:content.png
theme_throbber:Throbber
theme_throbber_frames:9
theme_throbber_delay:100
Removed: branches/jmb/treeview-redux/amiga/resources/Themes/Default/content.png
URL: http://source.netsurf-browser.org/branches/jmb/treeview-redux/amiga/resou...
==============================================================================
--- branches/jmb/treeview-redux/amiga/resources/Themes/Default/content.png (original)
+++ branches/jmb/treeview-redux/amiga/resources/Themes/Default/content.png (removed)
@@ -1,1 +1,0 @@
-link ../../../../!NetSurf/Resources/Icons/content.png
Removed: branches/jmb/treeview-redux/amiga/resources/Themes/Default/directory.png
URL: http://source.netsurf-browser.org/branches/jmb/treeview-redux/amiga/resou...
==============================================================================
--- branches/jmb/treeview-redux/amiga/resources/Themes/Default/directory.png (original)
+++ branches/jmb/treeview-redux/amiga/resources/Themes/Default/directory.png (removed)
@@ -1,1 +1,0 @@
-link ../../../../!NetSurf/Resources/Icons/directory.png
Modified: trunk/netsurf/Makefile.defaults
URL: http://source.netsurf-browser.org/trunk/netsurf/Makefile.defaults?rev=109...
==============================================================================
--- trunk/netsurf/Makefile.defaults (original)
+++ trunk/netsurf/Makefile.defaults Sat Oct 30 09:23:38 2010
@@ -208,6 +208,10 @@
# Enable NetSurf's use of libwebp/libvpx for displaying WebPs
# Valid options: YES, NO
NETSURF_USE_WEBP := YES
+
+ # Enable NetSurf to display Amiga icons
+ # Valid options: YES, NO (recommended)
+ NETSURF_USE_AMIGA_ICON := YES
# Enable NetSurf's use of libsvgtiny for displaying SVGs
# (NB: Requires NETSURF_AMIGA_USE_CAIRO)
Modified: trunk/netsurf/amiga/Makefile.target
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/Makefile.target?rev...
==============================================================================
--- trunk/netsurf/amiga/Makefile.target (original)
+++ trunk/netsurf/amiga/Makefile.target Sat Oct 30 09:23:38 2010
@@ -17,6 +17,7 @@
$(eval $(call feature_enabled,NSSVG,-DWITH_NS_SVG,-lsvgtiny,SVG (libsvgtiny)))
$(eval $(call feature_enabled,MNG,,-llcms -ljpeg,PNG/JNG/MNG (libmng)))
$(eval $(call feature_enabled,WEBP,-DWITH_WEBP,-lwebp -lvpx,WebP (libwebp)))
+$(eval $(call feature_enabled,AMIGA_ICON,-DWITH_AMIGA_ICON,,Amiga icon ))
CFLAGS += -D__USE_INLINE__ -std=c99 -I . -I /SDK/local/common/include/libpng12 -Dnsamiga
LDFLAGS += -lxml2 -lcurl -lpthread -lregex -lauto
@@ -38,7 +39,7 @@
plotters.c object.c menu.c save_pdf.c arexx.c version.c \
cookies.c context_menu.c clipboard.c save_complete.c \
fetch_mailto.c search.c history_local.c download.c iff_dr2d.c \
- sslcert.c gui_options.c print.c theme.c drag.c \
+ sslcert.c gui_options.c print.c theme.c drag.c icon.c \
stringview/stringview.c stringview/urlhistory.c
S_AMIGA := $(addprefix amiga/,$(S_AMIGA))
Modified: trunk/netsurf/amiga/filetype.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/filetype.c?rev=1092...
==============================================================================
--- trunk/netsurf/amiga/filetype.c (original)
+++ trunk/netsurf/amiga/filetype.c Sat Oct 30 09:23:38 2010
@@ -41,20 +41,33 @@
struct DataType *dtn;
BOOL found = FALSE;
- /* First try getting a tooltype "MIMETYPE" and use that as the MIME type. Will fail over
- to default icons if the file doesn't have a real icon. */
-
- if(dobj = GetIconTags(unix_path,ICONGETA_FailIfUnavailable,FALSE,
+ /* First, check if we appear to have an icon.
+ We'll just do a filename check here for quickness, although the
+ first word ought to be checked against WB_DISKMAGIC really. */
+
+ if(strncmp(unix_path + strlen(unix_path) - 5, ".info", 5) == 0)
+ {
+ strcpy(mimetype,"image/x-amiga-icon");
+ found = TRUE;
+ }
+
+ /* Secondly try getting a tooltype "MIMETYPE" and use that as the MIME type.
+ Will fail over to default icons if the file doesn't have a real icon. */
+
+ if(!found)
+ {
+ if(dobj = GetIconTags(unix_path,ICONGETA_FailIfUnavailable,FALSE,
TAG_DONE))
- {
- ttype = FindToolType(dobj->do_ToolTypes, "MIMETYPE");
- if(ttype)
{
- strcpy(mimetype,ttype);
- found = TRUE;
+ ttype = FindToolType(dobj->do_ToolTypes, "MIMETYPE");
+ if(ttype)
+ {
+ strcpy(mimetype,ttype);
+ found = TRUE;
+ }
+
+ FreeDiskObject(dobj);
}
-
- FreeDiskObject(dobj);
}
/* If that didn't work, have a go at guessing it using datatypes.library. This isn't
@@ -191,6 +204,11 @@
return "svg";
break;
#endif
+#ifdef WITH_WEBP
+ case CONTENT_WEBP:
+ return "webp";
+ break;
+#endif
default:
return "project";
break;
Modified: trunk/netsurf/amiga/gui.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.c?rev=10925&r1=...
==============================================================================
--- trunk/netsurf/amiga/gui.c (original)
+++ trunk/netsurf/amiga/gui.c Sat Oct 30 09:23:38 2010
@@ -144,8 +144,8 @@
struct MsgPort *applibport = NULL;
ULONG applibsig = 0;
-const char tree_directory_icon_name[100];
-const char tree_content_icon_name[100];
+const char tree_directory_icon_name[] = "def_drawer.info";
+const char tree_content_icon_name[] = "def_project.info";
extern colour scroll_widget_fg_colour;
extern colour scroll_widget_bg_colour;
extern colour scroll_widget_arrow_colour;
@@ -565,8 +565,6 @@
glob = &browserglob;
/**/
- ami_get_theme_filename(&tree_directory_icon_name,"theme_list_folder",true);
- ami_get_theme_filename(&tree_content_icon_name,"theme_list_content",true);
ami_hotlist_initialise(option_hotlist_file);
ami_cookies_initialise();
ami_global_history_initialise();
Added: trunk/netsurf/amiga/icon.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/icon.c?rev=10925&vi...
==============================================================================
--- trunk/netsurf/amiga/icon.c (added)
+++ trunk/netsurf/amiga/icon.c Sat Oct 30 09:23:38 2010
@@ -1,0 +1,177 @@
+ /*
+ * Copyright 2010 Chris Young <chris(a)unsatisfactorysoftware.co.uk>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf 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; version 2 of the License.
+ *
+ * NetSurf 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 this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** \file
+ * Content for image/x-amiga-icon (icon.library implementation).
+ *
+ */
+
+#include "utils/config.h"
+#ifdef WITH_AMIGA_ICON
+
+#include <assert.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <proto/icon.h>
+
+#include <workbench/icon.h>
+
+#include "desktop/plotters.h"
+#include "image/bitmap.h"
+#include "content/content_protected.h"
+#include "utils/log.h"
+#include "utils/messages.h"
+#include "utils/utils.h"
+#include "utils/url.h"
+
+/**
+ * Convert a CONTENT_AMIGA_ICON for display.
+ *
+ * No conversion is necessary. We merely read the icon dimensions.
+ */
+
+bool amiga_icon_convert(struct content *c)
+{
+ union content_msg_data msg_data;
+ struct DiskObject *dobj;
+ ULONG *imagebuf;
+ unsigned char *imagebufptr = NULL;
+ ULONG size;
+ int width = 0, height = 0;
+ long format = 0;
+ int err = 0;
+ uint8 r, g, b, a;
+ ULONG offset;
+ char *url;
+ char *filename;
+ char *p;
+
+ url = content__get_url(c);
+ filename = url_to_path(url);
+
+ /* This loader will only work on local files, so fail if not a local path */
+ if(filename == NULL)
+ {
+ msg_data.error = messages_get("NoMemory");
+ content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
+ return false;
+ }
+
+ p = strstr(filename, ".info");
+ *p = '\0';
+
+ dobj = GetIconTagList(filename, NULL);
+
+ if(dobj == NULL)
+ {
+ msg_data.error = messages_get("NoMemory");
+ content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
+ return false;
+ }
+
+ err = IconControl(dobj,
+ ICONCTRLA_GetImageDataFormat,&format,
+ ICONCTRLA_GetWidth,&width,
+ ICONCTRLA_GetHeight,&height,
+ TAG_DONE);
+
+ /* Check icon is direct mapped (truecolour).
+ We need additional code to handle ColourIcons and planar icons */
+ if(format != IDFMT_DIRECTMAPPED) return false;
+
+ c->bitmap = bitmap_create(width, height, BITMAP_NEW);
+ if (!c->bitmap) {
+ msg_data.error = messages_get("NoMemory");
+ content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
+ return false;
+ }
+ imagebuf = bitmap_get_buffer(c->bitmap);
+ if (!imagebuf) {
+ msg_data.error = messages_get("NoMemory");
+ content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
+ return false;
+ }
+
+ err = IconControl(dobj,
+ ICONCTRLA_GetImageData1, &imagebufptr,
+ TAG_DONE);
+
+ /* Decoded data is ARGB, so ensure correct byte order */
+
+ size = width * height * 4;
+
+ for (offset = 0; offset < size; offset += 4) {
+ b = imagebufptr[offset+3];
+ g = imagebufptr[offset+2];
+ r = imagebufptr[offset+1];
+ a = imagebufptr[offset];
+
+ *imagebuf = r << 24 | g << 16 | b << 8 | a;
+ imagebuf++;
+ }
+
+ c->width = width;
+ c->height = height;
+
+ bitmap_modified(c->bitmap);
+ c->status = CONTENT_STATUS_DONE;
+
+ content_set_status(c, "");
+ return true;
+}
+
+
+/**
+ * Destroy a CONTENT_AMIGA_ICON and free all resources it owns.
+ */
+
+void amiga_icon_destroy(struct content *c)
+{
+ if (c->bitmap != NULL)
+ bitmap_destroy(c->bitmap);
+}
+
+
+/**
+ * Redraw a CONTENT_AMIGA_ICON.
+ */
+
+bool amiga_icon_redraw(struct content *c, int x, int y,
+ int width, int height,
+ int clip_x0, int clip_y0, int clip_x1, int clip_y1,
+ float scale, colour background_colour)
+{
+ return plot.bitmap(x, y, width, height,
+ c->bitmap, background_colour, BITMAPF_NONE);
+}
+
+
+bool amiga_icon_clone(const struct content *old, struct content *new_content)
+{
+ /* Simply replay convert */
+ if (old->status == CONTENT_STATUS_READY ||
+ old->status == CONTENT_STATUS_DONE) {
+ if (webp_convert(new_content) == false)
+ return false;
+ }
+
+ return true;
+}
+
+#endif
Propchange: trunk/netsurf/amiga/icon.c
------------------------------------------------------------------------------
amiga:protection = ----rw-d ---- ----
Added: trunk/netsurf/amiga/icon.h
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/icon.h?rev=10925&vi...
==============================================================================
--- trunk/netsurf/amiga/icon.h (added)
+++ trunk/netsurf/amiga/icon.h Sat Oct 30 09:23:38 2010
@@ -1,0 +1,47 @@
+/*
+ * Copyright 2010 Chris Young <chris(a)unsatisfactorysoftware.co.uk>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf 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; version 2 of the License.
+ *
+ * NetSurf 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 this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** \file
+ * Content for image/x-amiga-icon (icon.library interface).
+ */
+
+#ifndef AMIGA_ICON_H
+#define AMIGA_ICON_H
+
+#include "utils/config.h"
+#ifdef WITH_AMIGA_ICON
+
+#include <stdbool.h>
+
+struct content;
+
+struct content_amiga_icon_data {
+/* empty */
+};
+
+bool amiga_icon_convert(struct content *c);
+void amiga_icon_destroy(struct content *c);
+bool amiga_icon_redraw(struct content *c, int x, int y,
+ int width, int height,
+ int clip_x0, int clip_y0, int clip_x1, int clip_y1,
+ float scale, colour background_colour);
+bool amiga_icon_clone(const struct content *old, struct content *new_content);
+
+#endif /* WITH_AMIGA_ICON */
+
+#endif
Propchange: trunk/netsurf/amiga/icon.h
------------------------------------------------------------------------------
amiga:protection = ----rw-d ---- ----
Modified: trunk/netsurf/amiga/tree.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/tree.c?rev=10925&r1...
==============================================================================
--- trunk/netsurf/amiga/tree.c (original)
+++ trunk/netsurf/amiga/tree.c Sat Oct 30 09:23:38 2010
@@ -52,6 +52,7 @@
#include "amiga/sslcert.h"
#include "amiga/drag.h" /* drag icon stuff */
#include "amiga/theme.h" /* pointers */
+#include "amiga/filetype.h"
#include "utils/utils.h"
#define AMI_TREE_MENU_ITEMS 19
@@ -174,41 +175,8 @@
*/
void tree_icon_name_from_content_type(char *buffer, content_type type)
{
- // TODO: design/acquire icons
- switch (type) {
- case CONTENT_HTML:
- case CONTENT_TEXTPLAIN:
- case CONTENT_CSS:
-#if defined(WITH_MNG) || defined(WITH_PNG)
- case CONTENT_PNG:
-#endif
-#ifdef WITH_MNG
- case CONTENT_JNG:
- case CONTENT_MNG:
-#endif
-#ifdef WITH_JPEG
- case CONTENT_JPEG:
-#endif
-#ifdef WITH_GIF
- case CONTENT_GIF:
-#endif
-#ifdef WITH_BMP
- case CONTENT_BMP:
- case CONTENT_ICO:
-#endif
-#ifdef WITH_NSSPRITE
- case CONTENT_SPRITE:
-#endif
-#ifdef WITH_NS_SVG
- case CONTENT_SVG:
-#endif
-#ifdef WITH_WEBP
- case CONTENT_WEBP:
-#endif
- default:
- ami_get_theme_filename(buffer,"theme_list_content",true);
- break;
- }
+ const char *ftype = ami_content_type_to_file_type(type);
+ sprintf(buffer, "def_%s.info", ftype);
}
/**
Modified: trunk/netsurf/content/content.c
URL: http://source.netsurf-browser.org/trunk/netsurf/content/content.c?rev=109...
==============================================================================
--- trunk/netsurf/content/content.c (original)
+++ trunk/netsurf/content/content.c Sat Oct 30 09:23:38 2010
@@ -80,6 +80,9 @@
#ifdef WITH_WEBP
#include "image/webp.h"
#endif
+#ifdef WITH_AMIGA_ICON
+#include "amiga/icon.h"
+#endif
#include "utils/http.h"
#include "utils/log.h"
#include "utils/messages.h"
@@ -159,6 +162,9 @@
#ifdef WITH_WEBP
{"image/webp", CONTENT_WEBP},
#endif
+#ifdef WITH_AMIGA_ICON
+ {"image/x-amiga-icon", CONTENT_AMIGA_ICON},
+#endif
#ifdef WITH_ARTWORKS
{"image/x-artworks", CONTENT_ARTWORKS},
#endif
@@ -239,6 +245,9 @@
#endif
#ifdef WITH_WEBP
"WEBP",
+#endif
+#ifdef WITH_AMIGA_ICON
+ "AMIGA_ICON",
#endif
"OTHER",
"UNKNOWN"
@@ -374,6 +383,11 @@
0, webp_destroy, 0, 0, 0, webp_redraw, 0,
0, 0, webp_clone, false},
#endif
+#ifdef WITH_WEBP
+ {0, 0, amiga_icon_convert,
+ 0, amiga_icon_destroy, 0, 0, 0, amiga_icon_redraw, 0,
+ 0, 0, amiga_icon_clone, false},
+#endif
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false}
};
#define HANDLER_MAP_COUNT (sizeof(handler_map) / sizeof(handler_map[0]))
Modified: trunk/netsurf/content/content_protected.h
URL: http://source.netsurf-browser.org/trunk/netsurf/content/content_protected...
==============================================================================
--- trunk/netsurf/content/content_protected.h (original)
+++ trunk/netsurf/content/content_protected.h Sat Oct 30 09:23:38 2010
@@ -78,6 +78,9 @@
#ifdef WITH_WEBP
#include "image/webp.h"
#endif
+#ifdef WITH_AMIGA_ICON
+#include "amiga/icon.h"
+#endif
struct bitmap;
@@ -152,6 +155,9 @@
#endif
#ifdef WITH_WEBP
struct content_webp_data webp;
+#endif
+#ifdef WITH_AMIGA_ICON
+ struct content_amiga_icon_data amiga_icon;
#endif
} data;
Modified: trunk/netsurf/content/content_type.h
URL: http://source.netsurf-browser.org/trunk/netsurf/content/content_type.h?re...
==============================================================================
--- trunk/netsurf/content/content_type.h (original)
+++ trunk/netsurf/content/content_type.h Sat Oct 30 09:23:38 2010
@@ -71,6 +71,9 @@
#ifdef WITH_WEBP
CONTENT_WEBP,
#endif
+#ifdef WITH_AMIGA_ICON
+ CONTENT_AMIGA_ICON,
+#endif
/* these must be the last two */
CONTENT_OTHER,
CONTENT_UNKNOWN /**< content-type not received yet */
Modified: trunk/netsurf/desktop/tree_url_node.c
URL: http://source.netsurf-browser.org/trunk/netsurf/desktop/tree_url_node.c?r...
==============================================================================
--- trunk/netsurf/desktop/tree_url_node.c (original)
+++ trunk/netsurf/desktop/tree_url_node.c Sat Oct 30 09:23:38 2010
@@ -92,6 +92,9 @@
#endif
#ifdef WITH_WEBP
{CONTENT_WEBP, NULL},
+#endif
+#ifdef WITH_AMIGA_ICON
+ {CONTENT_AMIGA_ICON, NULL},
#endif
{CONTENT_UNKNOWN, NULL},
Modified: trunk/netsurf/render/box.c
URL: http://source.netsurf-browser.org/trunk/netsurf/render/box.c?rev=10925&r1...
==============================================================================
--- trunk/netsurf/render/box.c (original)
+++ trunk/netsurf/render/box.c Sat Oct 30 09:23:38 2010
@@ -1163,6 +1163,9 @@
#ifdef WITH_WEBP
content_get_type(box->object) == CONTENT_WEBP ||
#endif
+#ifdef WITH_AMIGA_ICON
+ content_get_type(box->object) == CONTENT_AMIGA_ICON ||
+#endif
#if defined(WITH_SPRITE) || defined(WITH_NSSPRITE)
content_get_type(box->object) == CONTENT_SPRITE ||
#endif
Modified: trunk/netsurf/render/box_construct.c
URL: http://source.netsurf-browser.org/trunk/netsurf/render/box_construct.c?re...
==============================================================================
--- trunk/netsurf/render/box_construct.c (original)
+++ trunk/netsurf/render/box_construct.c Sat Oct 30 09:23:38 2010
@@ -83,6 +83,9 @@
#endif
#ifdef WITH_WEBP
CONTENT_WEBP,
+#endif
+#ifdef WITH_AMIGA_ICON
+ CONTENT_AMIGA_ICON,
#endif
CONTENT_UNKNOWN };
12 years, 10 months
r10924 chris_y - in /trunk/netsurf/amiga: drag.c drag.h
by netsurf@semichrome.net
Author: chris_y
Date: Sat Oct 30 06:21:38 2010
New Revision: 10924
URL: http://source.netsurf-browser.org?rev=10924&view=rev
Log:
Drag icon code
Added:
trunk/netsurf/amiga/drag.c (with props)
trunk/netsurf/amiga/drag.h (with props)
Added: trunk/netsurf/amiga/drag.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/drag.c?rev=10924&vi...
==============================================================================
--- trunk/netsurf/amiga/drag.c (added)
+++ trunk/netsurf/amiga/drag.c Sat Oct 30 06:21:38 2010
@@ -1,0 +1,338 @@
+/*
+ * Copyright 2010 Chris Young <chris(a)unsatisfactorysoftware.co.uk>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf 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; version 2 of the License.
+ *
+ * NetSurf 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 this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <string.h>
+
+#include <proto/wb.h>
+#include <proto/exec.h>
+#include <proto/dos.h>
+#include <proto/intuition.h>
+#include <proto/utility.h>
+#include <proto/icon.h>
+#include <proto/layers.h>
+
+#include <graphics/blitattr.h>
+#include <workbench/icon.h>
+
+#include "amiga/download.h"
+#include "amiga/drag.h"
+#include "amiga/filetype.h"
+#include "amiga/options.h"
+#include "amiga/iff_dr2d.h"
+#include "amiga/theme.h"
+
+#include "desktop/selection.h"
+#include "desktop/save_complete.h"
+
+#include "amiga/bitmap.h"
+
+#include "utils/errors.h"
+#include "utils/log.h"
+#include "utils/messages.h"
+#include "utils/utils.h"
+
+struct Window *drag_icon = NULL;
+ULONG drag_icon_width;
+ULONG drag_icon_height;
+BOOL drag_in_progress = FALSE;
+
+void gui_drag_save_object(gui_save_type type, hlcache_handle *c,
+ struct gui_window *g)
+{
+ char *filetype;
+
+ if(strcmp(option_use_pubscreen,"Workbench")) return;
+
+ switch(type)
+ {
+ case GUI_SAVE_OBJECT_ORIG: // object
+ case GUI_SAVE_SOURCE:
+ filetype = ami_content_type_to_file_type(content_get_type(c));
+ break;
+ case GUI_SAVE_COMPLETE:
+ filetype = "drawer";
+ break;
+ case GUI_SAVE_OBJECT_NATIVE:
+#ifdef WITH_NS_SVG
+ if(content_get_type(c) == CONTENT_SVG)
+ {
+ filetype = "dr2d";
+ }
+ else
+#endif
+ {
+ filetype = "ilbm";
+ }
+ break;
+ }
+
+ ami_drag_icon_show(g->shared->win, filetype);
+
+ drag_save_data = c;
+ drag_save_gui = g;
+ drag_save = type;
+}
+
+void gui_drag_save_selection(struct selection *s, struct gui_window *g)
+{
+ ami_drag_icon_show(g->shared->win, "ascii");
+
+ ami_autoscroll = TRUE;
+ drag_save_data = s;
+ drag_save = GUI_SAVE_TEXT_SELECTION;
+}
+
+void ami_drag_save(struct Window *win)
+{
+ ULONG which = WBO_NONE,type;
+ char path[1025],dpath[1025];
+ char *source_data;
+ ULONG source_size;
+
+ ami_drag_icon_close(NULL);
+ ami_autoscroll = FALSE;
+
+ if(strcmp(option_use_pubscreen,"Workbench") == 0)
+ {
+ which = WhichWorkbenchObject(NULL,scrn->MouseX,scrn->MouseY,
+ WBOBJA_Type,&type,
+ WBOBJA_FullPath,&path,
+ WBOBJA_FullPathSize,1024,
+ WBOBJA_DrawerPath,&dpath,
+ WBOBJA_DrawerPathSize,1024,
+ TAG_DONE);
+ }
+
+ if((which == WBO_DRAWER) || ((which == WBO_ICON) && (type > WBDRAWER)))
+ {
+ strcpy(path,dpath);
+ }
+ else if(which == WBO_NONE)
+ {
+ if(drag_save == GUI_SAVE_TEXT_SELECTION)
+ ami_drag_selection((struct selection *)drag_save_data);
+ else DisplayBeep(scrn);
+
+ drag_save = 0;
+ drag_save_data = NULL;
+ return;
+ }
+
+ if(path[0] == '\0')
+ {
+ DisplayBeep(scrn);
+ drag_save = 0;
+ drag_save_data = NULL;
+ return;
+ }
+
+ ami_update_pointer(win,GUI_POINTER_WAIT);
+
+ switch(drag_save)
+ {
+ case GUI_SAVE_OBJECT_ORIG: // object
+ case GUI_SAVE_SOURCE:
+ {
+ struct hlcache_handle *c = drag_save_data;
+ BPTR fh = 0;
+ AddPart(path, content_get_title(c), 1024);
+
+ if(fh = FOpen(path,MODE_NEWFILE,0))
+ {
+ if((source_data = content_get_source_data(c, &source_size)))
+ FWrite(fh, source_data, 1, source_size);
+
+ FClose(fh);
+ SetComment(path, content_get_url(c));
+ }
+ }
+ break;
+
+ case GUI_SAVE_TEXT_SELECTION: // selection
+ AddPart(path,"netsurf_text_file",1024);
+ selection_save_text((struct selection *)drag_save_data,path);
+ break;
+
+ case GUI_SAVE_COMPLETE:
+ {
+ struct hlcache_handle *c = drag_save_data;
+ BPTR lock = 0;
+
+ AddPart(path, content_get_title(c), 1024);
+ if(lock = CreateDir(path))
+ {
+ UnLock(lock);
+ save_complete(c,path);
+ SetComment(path, content_get_url(c));
+ }
+ ami_superimpose_favicon(path,
+ drag_save_gui->favicon, NULL);
+ }
+ break;
+
+ case GUI_SAVE_OBJECT_NATIVE:
+ {
+ hlcache_handle *c = drag_save_data;
+ struct bitmap *bm;
+
+ AddPart(path, content_get_title(c), 1024);
+ if(bm = content_get_bitmap(c))
+ {
+ bm->url = content_get_url(c);
+ bm->title = content_get_title(c);
+ bitmap_save(bm, path, 0);
+ }
+#ifdef WITH_NS_SVG
+ else if(content_get_type(c) == CONTENT_SVG)
+ {
+ ami_save_svg(c, path);
+ }
+#endif
+ }
+ break;
+
+ default:
+ LOG(("Unsupported drag save operation %ld",drag_save));
+ break;
+ }
+
+ drag_save = 0;
+ drag_save_data = NULL;
+ ami_update_pointer(win,GUI_POINTER_DEFAULT);
+}
+
+void ami_drag_icon_show(struct Window *win, char *type)
+{
+ struct DiskObject *dobj = NULL;
+ ULONG *icondata1;
+ ULONG width, height;
+ long format = 0;
+ int err = 0;
+ int deftype = WBPROJECT;
+
+ drag_in_progress = TRUE;
+
+ if(option_drag_save_icons == false)
+ {
+ ami_update_pointer(win, AMI_GUI_POINTER_DRAG);
+ return;
+ }
+ else
+ {
+ ami_update_pointer(win, GUI_POINTER_DEFAULT);
+ }
+
+ if(!strcmp(type, "drawer")) deftype = WBDRAWER;
+
+ dobj = GetIconTags(NULL, ICONGETA_GetDefaultName, type,
+ ICONGETA_GetDefaultType, deftype,
+ TAG_DONE);
+
+ err = IconControl(dobj,
+ ICONCTRLA_GetWidth,&width,
+ ICONCTRLA_GetHeight,&height,
+ TAG_DONE);
+
+ drag_icon_width = width;
+ drag_icon_height = height;
+
+ drag_icon = OpenWindowTags(NULL,
+ WA_Left, scrn->MouseX - (width/2),
+ WA_Top, scrn->MouseY - (height/2),
+ WA_Width, width,
+ WA_Height, height,
+ WA_PubScreen, scrn,
+ WA_Borderless, TRUE,
+ WA_ToolBox, TRUE,
+ WA_StayTop, TRUE,
+ WA_Opaqueness, 128,
+ WA_OverrideOpaqueness, TRUE,
+ TAG_DONE);
+
+/* probably need layouticon and drawinfo stuff too */
+
+ DrawIconState(drag_icon->RPort, dobj, NULL, 0, 0, IDS_NORMAL,
+ ICONDRAWA_Frameless, TRUE,
+ ICONDRAWA_Borderless, TRUE,
+ TAG_DONE);
+}
+
+void ami_drag_icon_move(void)
+{
+ if(drag_icon == NULL) return;
+
+ ChangeWindowBox(drag_icon, scrn->MouseX - (drag_icon_width / 2),
+ scrn->MouseY - (drag_icon_height / 2),
+ drag_icon_width, drag_icon_height);
+}
+
+/**
+ * Close the drag icon (invisible) window if it is open
+ *
+ * \param win pointer to window to clear drag pointer
+ */
+
+void ami_drag_icon_close(struct Window *win)
+{
+ if(drag_icon) CloseWindow(drag_icon);
+ if(win) ami_update_pointer(win, GUI_POINTER_DEFAULT);
+ drag_icon = NULL;
+ drag_in_progress = FALSE;
+}
+
+BOOL ami_drag_in_progress(void)
+{
+ return drag_in_progress;
+}
+
+struct gui_window_2 *ami_find_gwin_by_id(struct Window *win)
+{
+ struct nsObject *node, *nnode;
+ struct gui_window_2 *gwin;
+
+ if(!IsMinListEmpty(window_list))
+ {
+ node = (struct nsObject *)GetHead((struct List *)window_list);
+
+ do
+ {
+ nnode=(struct nsObject *)GetSucc((struct Node *)node);
+
+ if(node->Type == AMINS_WINDOW) // or frame?
+ {
+ gwin = node->objstruct;
+ if(win == gwin->win) return gwin;
+ }
+ } while(node = nnode);
+ }
+ return NULL;
+}
+
+struct gui_window_2 *ami_window_at_pointer(void)
+{
+ struct Layer *layer;
+
+ LockLayerInfo(&scrn->LayerInfo);
+
+ layer = WhichLayer(&scrn->LayerInfo, scrn->MouseX, scrn->MouseY);
+
+ UnlockLayerInfo(&scrn->LayerInfo);
+
+ if(layer) return ami_find_gwin_by_id(layer->Window);
+ else return NULL;
+}
Propchange: trunk/netsurf/amiga/drag.c
------------------------------------------------------------------------------
amiga:protection = ----rw-d ---- ----
Added: trunk/netsurf/amiga/drag.h
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/drag.h?rev=10924&vi...
==============================================================================
--- trunk/netsurf/amiga/drag.h (added)
+++ trunk/netsurf/amiga/drag.h Sat Oct 30 06:21:38 2010
@@ -1,0 +1,34 @@
+/*
+ * Copyright 2010 Chris Young <chris(a)unsatisfactorysoftware.co.uk>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf 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; version 2 of the License.
+ *
+ * NetSurf 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 this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef AMIGA_DRAG_H
+#define AMIGA_DRAG_H
+#include "amiga/gui.h"
+
+int drag_save;
+void *drag_save_data;
+struct gui_window *drag_save_gui;
+
+void ami_drag_save(struct Window *win);
+void ami_drag_icon_show(struct Window *win, char *type);
+void ami_drag_icon_close(struct Window *win);
+void ami_drag_icon_move(void);
+BOOL ami_drag_in_progress(void);
+
+struct gui_window_2 *ami_window_at_pointer(void);
+#endif
Propchange: trunk/netsurf/amiga/drag.h
------------------------------------------------------------------------------
amiga:protection = ----rw-d ---- ----
12 years, 10 months
r10923 chris_y - /trunk/netsurf/amiga/filetype.h
by netsurf@semichrome.net
Author: chris_y
Date: Sat Oct 30 06:21:19 2010
New Revision: 10923
URL: http://source.netsurf-browser.org?rev=10923&view=rev
Log:
missing header
Added:
trunk/netsurf/amiga/filetype.h (with props)
Added: trunk/netsurf/amiga/filetype.h
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/filetype.h?rev=1092...
==============================================================================
--- trunk/netsurf/amiga/filetype.h (added)
+++ trunk/netsurf/amiga/filetype.h Sat Oct 30 06:21:19 2010
@@ -1,0 +1,22 @@
+/*
+ * Copyright 2010 Chris Young <chris(a)unsatisfactorysoftware.co.uk>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf 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; version 2 of the License.
+ *
+ * NetSurf 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 this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef AMIGA_FILETYPE_H
+#define AMIGA_FILETYPE_H
+const char *ami_content_type_to_file_type(content_type type);
+#endif
Propchange: trunk/netsurf/amiga/filetype.h
------------------------------------------------------------------------------
amiga:protection = ----rw-d ---- ----
12 years, 10 months
r10922 chris_y - in /trunk/netsurf/amiga: Makefile.target bitmap.c bitmap.h clipboard.c download.c download.h gui.c gui.h gui_options.c menu.c theme.c tree.c
by netsurf@semichrome.net
Author: chris_y
Date: Sat Oct 30 06:20:53 2010
New Revision: 10922
URL: http://source.netsurf-browser.org?rev=10922&view=rev
Log:
Move drag icon stuff to own file; fix warnings
Modified:
trunk/netsurf/amiga/Makefile.target
trunk/netsurf/amiga/bitmap.c
trunk/netsurf/amiga/bitmap.h
trunk/netsurf/amiga/clipboard.c
trunk/netsurf/amiga/download.c
trunk/netsurf/amiga/download.h
trunk/netsurf/amiga/gui.c
trunk/netsurf/amiga/gui.h
trunk/netsurf/amiga/gui_options.c
trunk/netsurf/amiga/menu.c
trunk/netsurf/amiga/theme.c
trunk/netsurf/amiga/tree.c
Modified: trunk/netsurf/amiga/Makefile.target
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/Makefile.target?rev...
==============================================================================
--- trunk/netsurf/amiga/Makefile.target (original)
+++ trunk/netsurf/amiga/Makefile.target Sat Oct 30 06:20:53 2010
@@ -38,7 +38,7 @@
plotters.c object.c menu.c save_pdf.c arexx.c version.c \
cookies.c context_menu.c clipboard.c save_complete.c \
fetch_mailto.c search.c history_local.c download.c iff_dr2d.c \
- sslcert.c gui_options.c print.c theme.c \
+ sslcert.c gui_options.c print.c theme.c drag.c \
stringview/stringview.c stringview/urlhistory.c
S_AMIGA := $(addprefix amiga/,$(S_AMIGA))
Modified: trunk/netsurf/amiga/bitmap.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/bitmap.c?rev=10922&...
==============================================================================
--- trunk/netsurf/amiga/bitmap.c (original)
+++ trunk/netsurf/amiga/bitmap.c Sat Oct 30 06:20:53 2010
@@ -17,7 +17,6 @@
*/
#include "assert.h"
-#include "image/bitmap.h"
#include "amiga/bitmap.h"
#include <proto/exec.h>
#include <proto/picasso96api.h>
Modified: trunk/netsurf/amiga/bitmap.h
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/bitmap.h?rev=10922&...
==============================================================================
--- trunk/netsurf/amiga/bitmap.h (original)
+++ trunk/netsurf/amiga/bitmap.h Sat Oct 30 06:20:53 2010
@@ -18,6 +18,8 @@
#ifndef AMIGA_BITMAP_H
#define AMIGA_BITMAP_H
+#include "image/bitmap.h"
+
#include <exec/types.h>
#include <proto/graphics.h>
#include <intuition/classusr.h>
Modified: trunk/netsurf/amiga/clipboard.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/clipboard.c?rev=109...
==============================================================================
--- trunk/netsurf/amiga/clipboard.c (original)
+++ trunk/netsurf/amiga/clipboard.c Sat Oct 30 06:20:53 2010
@@ -28,6 +28,7 @@
#include "amiga/bitmap.h"
#include "amiga/iff_dr2d.h"
#include "amiga/menu.h"
+#include "amiga/drag.h"
#include <proto/iffparse.h>
#include <proto/intuition.h>
Modified: trunk/netsurf/amiga/download.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/download.c?rev=1092...
==============================================================================
--- trunk/netsurf/amiga/download.c (original)
+++ trunk/netsurf/amiga/download.c Sat Oct 30 06:20:53 2010
@@ -41,6 +41,8 @@
#include "desktop/selection.h"
#include "desktop/save_complete.h"
+#include "image/ico.h"
+
#include "utils/errors.h"
#include "utils/log.h"
#include "utils/messages.h"
@@ -55,11 +57,6 @@
#include <gadgets/layout.h>
#include <reaction/reaction_macros.h>
-
-struct Window *drag_icon = NULL;
-ULONG drag_icon_width;
-ULONG drag_icon_height;
-BOOL drag_in_progress = FALSE;
struct gui_download_window *gui_download_window_create(download_context *ctx,
struct gui_window *gui)
@@ -329,255 +326,6 @@
}
}
-void gui_drag_save_object(gui_save_type type, hlcache_handle *c,
- struct gui_window *g)
-{
- char *filetype;
-
- if(strcmp(option_use_pubscreen,"Workbench")) return;
-
- switch(type)
- {
- case GUI_SAVE_OBJECT_ORIG: // object
- case GUI_SAVE_SOURCE:
- filetype = ami_content_type_to_file_type(content_get_type(c));
- break;
- case GUI_SAVE_COMPLETE:
- filetype = "drawer";
- break;
- case GUI_SAVE_OBJECT_NATIVE:
-#ifdef WITH_NS_SVG
- if(content_get_type(c) == CONTENT_SVG)
- {
- filetype = "dr2d";
- }
- else
-#endif
- {
- filetype = "ilbm";
- }
- break;
- }
-
- ami_drag_icon_show(g->shared->win, filetype);
-
- drag_save_data = c;
- drag_save_gui = g;
- drag_save = type;
-}
-
-void gui_drag_save_selection(struct selection *s, struct gui_window *g)
-{
- ami_drag_icon_show(g->shared->win, "ascii");
-
- ami_autoscroll = TRUE;
- drag_save_data = s;
- drag_save = GUI_SAVE_TEXT_SELECTION;
-}
-
-void ami_drag_save(struct Window *win)
-{
- ULONG which = WBO_NONE,type;
- char path[1025],dpath[1025];
- char *source_data;
- ULONG source_size;
-
- ami_drag_icon_close(NULL);
- ami_autoscroll = FALSE;
-
- if(strcmp(option_use_pubscreen,"Workbench") == 0)
- {
- which = WhichWorkbenchObject(NULL,scrn->MouseX,scrn->MouseY,
- WBOBJA_Type,&type,
- WBOBJA_FullPath,&path,
- WBOBJA_FullPathSize,1024,
- WBOBJA_DrawerPath,&dpath,
- WBOBJA_DrawerPathSize,1024,
- TAG_DONE);
- }
-
- if((which == WBO_DRAWER) || ((which == WBO_ICON) && (type > WBDRAWER)))
- {
- strcpy(path,dpath);
- }
- else if(which == WBO_NONE)
- {
- if(drag_save == GUI_SAVE_TEXT_SELECTION)
- ami_drag_selection((struct selection *)drag_save_data);
- else DisplayBeep(scrn);
-
- drag_save = 0;
- drag_save_data = NULL;
- return;
- }
-
- if(path[0] == '\0')
- {
- DisplayBeep(scrn);
- drag_save = 0;
- drag_save_data = NULL;
- return;
- }
-
- ami_update_pointer(win,GUI_POINTER_WAIT);
-
- switch(drag_save)
- {
- case GUI_SAVE_OBJECT_ORIG: // object
- case GUI_SAVE_SOURCE:
- {
- struct hlcache_handle *c = drag_save_data;
- BPTR fh = 0;
- AddPart(path, content_get_title(c), 1024);
-
- if(fh = FOpen(path,MODE_NEWFILE,0))
- {
- if((source_data = content_get_source_data(c, &source_size)))
- FWrite(fh, source_data, 1, source_size);
-
- FClose(fh);
- SetComment(path, content_get_url(c));
- }
- }
- break;
-
- case GUI_SAVE_TEXT_SELECTION: // selection
- AddPart(path,"netsurf_text_file",1024);
- selection_save_text((struct selection *)drag_save_data,path);
- break;
-
- case GUI_SAVE_COMPLETE:
- {
- struct hlcache_handle *c = drag_save_data;
- BPTR lock = 0;
-
- AddPart(path, content_get_title(c), 1024);
- if(lock = CreateDir(path))
- {
- UnLock(lock);
- save_complete(c,path);
- SetComment(path, content_get_url(c));
- }
- ami_superimpose_favicon(path,
- drag_save_gui->favicon, NULL);
- }
- break;
-
- case GUI_SAVE_OBJECT_NATIVE:
- {
- hlcache_handle *c = drag_save_data;
- struct bitmap *bm;
-
- AddPart(path, content_get_title(c), 1024);
- if(bm = content_get_bitmap(c))
- {
- bm->url = content_get_url(c);
- bm->title = content_get_title(c);
- bitmap_save(bm, path, 0);
- }
-#ifdef WITH_NS_SVG
- else if(content_get_type(c) == CONTENT_SVG)
- {
- ami_save_svg(c, path);
- }
-#endif
- }
- break;
-
- default:
- LOG(("Unsupported drag save operation %ld",drag_save));
- break;
- }
-
- drag_save = 0;
- drag_save_data = NULL;
- ami_update_pointer(win,GUI_POINTER_DEFAULT);
-}
-
-void ami_drag_icon_show(struct Window *win, char *type)
-{
- struct DiskObject *dobj = NULL;
- ULONG *icondata1;
- ULONG width, height;
- long format = 0;
- int err = 0;
- int deftype = WBPROJECT;
-
- drag_in_progress = TRUE;
-
- if(option_drag_save_icons == false)
- {
- ami_update_pointer(win, AMI_GUI_POINTER_DRAG);
- return;
- }
- else
- {
- ami_update_pointer(win, GUI_POINTER_DEFAULT);
- }
-
- if(!strcmp(type, "drawer")) deftype = WBDRAWER;
-
- dobj = GetIconTags(NULL, ICONGETA_GetDefaultName, type,
- ICONGETA_GetDefaultType, deftype,
- TAG_DONE);
-
- err = IconControl(dobj,
- ICONCTRLA_GetWidth,&width,
- ICONCTRLA_GetHeight,&height,
- TAG_DONE);
-
- drag_icon_width = width;
- drag_icon_height = height;
-
- drag_icon = OpenWindowTags(NULL,
- WA_Left, scrn->MouseX - (width/2),
- WA_Top, scrn->MouseY - (height/2),
- WA_Width, width,
- WA_Height, height,
- WA_PubScreen, scrn,
- WA_Borderless, TRUE,
- WA_ToolBox, TRUE,
- WA_StayTop, TRUE,
- WA_Opaqueness, 128,
- WA_OverrideOpaqueness, TRUE,
- TAG_DONE);
-
-/* probably need layouticon and drawinfo stuff too */
-
- DrawIconState(drag_icon->RPort, dobj, NULL, 0, 0, IDS_NORMAL,
- ICONDRAWA_Frameless, TRUE,
- ICONDRAWA_Borderless, TRUE,
- TAG_DONE);
-}
-
-void ami_drag_icon_move(void)
-{
- if(drag_icon == NULL) return;
-
- ChangeWindowBox(drag_icon, scrn->MouseX - (drag_icon_width / 2),
- scrn->MouseY - (drag_icon_height / 2),
- drag_icon_width, drag_icon_height);
-}
-
-/**
- * Close the drag icon (invisible) window if it is open
- *
- * \param win pointer to window to clear drag pointer
- */
-
-void ami_drag_icon_close(struct Window *win)
-{
- if(drag_icon) CloseWindow(drag_icon);
- if(win) ami_update_pointer(win, GUI_POINTER_DEFAULT);
- drag_icon = NULL;
- drag_in_progress = FALSE;
-}
-
-BOOL ami_drag_in_progress(void)
-{
- return drag_in_progress;
-}
-
void ami_superimpose_favicon(STRPTR path, struct hlcache_handle *icon, STRPTR type)
{
struct DiskObject *dobj = NULL;
Modified: trunk/netsurf/amiga/download.h
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/download.h?rev=1092...
==============================================================================
--- trunk/netsurf/amiga/download.h (original)
+++ trunk/netsurf/amiga/download.h Sat Oct 30 06:20:53 2010
@@ -42,19 +42,8 @@
char fname[1024];
};
-int drag_save;
-void *drag_save_data;
-struct gui_window *drag_save_gui;
-
void ami_download_window_abort(struct gui_download_window *dw);
BOOL ami_download_window_event(struct gui_download_window *dw);
-void ami_drag_save(struct Window *win);
-void ami_drag_icon_show(struct Window *win, char *type);
-void ami_drag_icon_close(struct Window *win);
-void ami_drag_icon_move(void);
-BOOL ami_drag_in_progress(void);
void ami_free_download_list(struct List *dllist);
void ami_superimpose_favicon(STRPTR path, struct hlcache_handle *icon, STRPTR type);
-
-const char *ami_content_type_to_file_type(content_type type);
#endif
Modified: trunk/netsurf/amiga/gui.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.c?rev=10922&r1=...
==============================================================================
--- trunk/netsurf/amiga/gui.c (original)
+++ trunk/netsurf/amiga/gui.c Sat Oct 30 06:20:53 2010
@@ -27,6 +27,7 @@
#include "desktop/searchweb.h"
#include "desktop/selection.h"
#include "desktop/textinput.h"
+#include "image/ico.h"
#include "render/form.h"
#include "utils/messages.h"
#include "utils/utf8.h"
@@ -40,6 +41,7 @@
#include "amiga/context_menu.h"
#include "amiga/cookies.h"
#include "amiga/download.h"
+#include "amiga/drag.h"
#include "amiga/fetch_mailto.h"
#include "amiga/font.h"
#include "amiga/gui.h"
@@ -72,7 +74,6 @@
#include <proto/graphics.h>
#include <proto/intuition.h>
#include <proto/keymap.h>
-#include <proto/layers.h>
#include <proto/locale.h>
#include <proto/Picasso96API.h>
#include <proto/timer.h>
@@ -3887,40 +3888,3 @@
}
return text_box;
}
-
-struct gui_window_2 *ami_find_gwin_by_id(struct Window *win)
-{
- struct nsObject *node, *nnode;
- struct gui_window_2 *gwin;
-
- if(!IsMinListEmpty(window_list))
- {
- node = (struct nsObject *)GetHead((struct List *)window_list);
-
- do
- {
- nnode=(struct nsObject *)GetSucc((struct Node *)node);
-
- if(node->Type == AMINS_WINDOW) // or frame?
- {
- gwin = node->objstruct;
- if(win == gwin->win) return gwin;
- }
- } while(node = nnode);
- }
- return NULL;
-}
-
-struct gui_window_2 *ami_window_at_pointer(void)
-{
- struct Layer *layer;
-
- LockLayerInfo(&scrn->LayerInfo);
-
- layer = WhichLayer(&scrn->LayerInfo, scrn->MouseX, scrn->MouseY);
-
- UnlockLayerInfo(&scrn->LayerInfo);
-
- if(layer) return ami_find_gwin_by_id(layer->Window);
- else return NULL;
-}
Modified: trunk/netsurf/amiga/gui.h
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.h?rev=10922&r1=...
==============================================================================
--- trunk/netsurf/amiga/gui.h (original)
+++ trunk/netsurf/amiga/gui.h Sat Oct 30 06:20:53 2010
@@ -132,7 +132,6 @@
STRPTR ami_locale_langs(void);
int ami_key_to_nskey(ULONG keycode, struct InputEvent *ie);
struct box *ami_text_box_at_point(struct gui_window_2 *gwin, ULONG *x, ULONG *y);
-struct gui_window_2 *ami_window_at_pointer(void);
struct TextFont *origrpfont;
struct MinList *window_list;
Modified: trunk/netsurf/amiga/gui_options.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/gui_options.c?rev=1...
==============================================================================
--- trunk/netsurf/amiga/gui_options.c (original)
+++ trunk/netsurf/amiga/gui_options.c Sat Oct 30 06:20:53 2010
@@ -27,6 +27,7 @@
#include <intuition/classusr.h>
#include "amiga/object.h"
+#include "amiga/font.h"
#include "amiga/gui.h"
#include "amiga/gui_options.h"
#include "utils/messages.h"
Modified: trunk/netsurf/amiga/menu.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/menu.c?rev=10922&r1...
==============================================================================
--- trunk/netsurf/amiga/menu.c (original)
+++ trunk/netsurf/amiga/menu.c Sat Oct 30 06:20:53 2010
@@ -41,6 +41,7 @@
#include "amiga/iff_dr2d.h"
#include "amiga/clipboard.h"
#include "amiga/gui_options.h"
+#include "amiga/theme.h"
#include "desktop/tree_url_node.h"
#include <classes/window.h>
#include <proto/intuition.h>
Modified: trunk/netsurf/amiga/theme.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/theme.c?rev=10922&r...
==============================================================================
--- trunk/netsurf/amiga/theme.c (original)
+++ trunk/netsurf/amiga/theme.c Sat Oct 30 06:20:53 2010
@@ -33,7 +33,7 @@
#include <intuition/pointerclass.h>
#include <workbench/icon.h>
-#include "amiga/download.h"
+#include "amiga/drag.h"
#include "amiga/options.h"
#include "amiga/theme.h"
#include "utils/messages.h"
Modified: trunk/netsurf/amiga/tree.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/tree.c?rev=10922&r1...
==============================================================================
--- trunk/netsurf/amiga/tree.c (original)
+++ trunk/netsurf/amiga/tree.c Sat Oct 30 06:20:53 2010
@@ -50,7 +50,7 @@
#include "desktop/history_global_core.h"
#include "desktop/hotlist.h"
#include "amiga/sslcert.h"
-#include "amiga/download.h" /* drag icon stuff */
+#include "amiga/drag.h" /* drag icon stuff */
#include "amiga/theme.h" /* pointers */
#include "utils/utils.h"
12 years, 10 months