r9541 chris_y - /trunk/netsurf/amiga/font.c
by netsurf@semichrome.net
Author: chris_y
Date: Sat Sep 5 09:39:38 2009
New Revision: 9541
URL: http://source.netsurf-browser.org?rev=9541&view=rev
Log:
Click position improvements
Modified:
trunk/netsurf/amiga/font.c
Modified: trunk/netsurf/amiga/font.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/font.c?rev=9541&r1=...
==============================================================================
--- trunk/netsurf/amiga/font.c (original)
+++ trunk/netsurf/amiga/font.c Sat Sep 5 09:39:38 2009
@@ -115,7 +115,7 @@
utf16charlen = 2;
utf8len = utf8_char_byte_length(string);
- string+=utf8len;
+ string += utf8len;
if(ESetInfo(&ofont->olf_EEngine,
OT_GlyphCode,*utf16,
@@ -125,8 +125,9 @@
OT_GlyphMap8Bit,&glyph,
TAG_END) == 0)
{
- if(x<tx+glyph->glm_X1)
+ if(x < (tx + glyph->glm_X1))
{
+ *actual_x = tx;
i = len+1;
}
else
@@ -134,8 +135,7 @@
co += utf8len;
}
- *actual_x = tx + (glyph->glm_X1 / 2);
- tx+= glyph->glm_X1;
+ tx += glyph->glm_X1;
EReleaseInfo(&ofont->olf_EEngine,
OT_GlyphMap8Bit,glyph,
@@ -144,8 +144,15 @@
}
utf16 += utf16charlen;
}
+
+ if(co == length)
+ {
+ *actual_x = tx;
+ co = length;
+ }
+
*char_offset = co;
- if(co>=length) *actual_x = tx;
+
free(outf16);
return true;
13 years, 9 months
r9540 chris_y - /trunk/netsurf/amiga/font.c
by netsurf@semichrome.net
Author: chris_y
Date: Sat Sep 5 07:35:05 2009
New Revision: 9540
URL: http://source.netsurf-browser.org?rev=9540&view=rev
Log:
Fix missing characters
Modified:
trunk/netsurf/amiga/font.c
Modified: trunk/netsurf/amiga/font.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/font.c?rev=9540&r1=...
==============================================================================
--- trunk/netsurf/amiga/font.c (original)
+++ trunk/netsurf/amiga/font.c Sat Sep 5 07:35:05 2009
@@ -182,7 +182,6 @@
uint32 tx=0,i=0;
size_t len;
int utf8len, utf8clen = 0;
- bool found = false;
len = utf8_bounded_length(string, length);
if(utf8_to_enc((char *)string,"UTF-16",length,(char **)&utf16) != UTF8_CONVERT_OK) return false;
@@ -194,6 +193,8 @@
for(i=0;i<len;i++)
{
+ utf8len = utf8_char_byte_length(string+utf8clen);
+
if(ESetInfo(&ofont->olf_EEngine,
OT_GlyphCode,*utf16,
TAG_END) == OTERR_Success)
@@ -202,20 +203,19 @@
OT_GlyphMap8Bit,&glyph,
TAG_END) == 0)
{
- if(x < (tx + glyph->glm_X1))
+ tx+= glyph->glm_X1;
+
+ if(x < tx)
{
i = length+1;
}
else
{
- if(*string == ' ') //*utf16 == 0x0020)
+ if(string[utf8clen] == ' ') //*utf16 == 0x0020)
{
*actual_x = tx;
*char_offset = utf8clen;
- //found = true;
}
-
- tx+= glyph->glm_X1;
}
EReleaseInfo(&ofont->olf_EEngine,
@@ -229,18 +229,9 @@
else
utf16 += 2;
- utf8len = utf8_char_byte_length(string);
- string += utf8len;
utf8clen += utf8len;
}
-/*
- if(found == false)
- {
- *char_offset = utf8clen;
- *actual_x = tx;
- }
-*/
free(outf16);
return true;
13 years, 9 months
r9539 chris_y - /trunk/netsurf/amiga/font.c
by netsurf@semichrome.net
Author: chris_y
Date: Sat Sep 5 06:58:13 2009
New Revision: 9539
URL: http://source.netsurf-browser.org?rev=9539&view=rev
Log:
More simple
Modified:
trunk/netsurf/amiga/font.c
Modified: trunk/netsurf/amiga/font.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/font.c?rev=9539&r1=...
==============================================================================
--- trunk/netsurf/amiga/font.c (original)
+++ trunk/netsurf/amiga/font.c Sat Sep 5 06:58:13 2009
@@ -190,6 +190,7 @@
if(!(ofont = ami_open_outline_font(fstyle))) return false;
*char_offset = 0;
+ *actual_x = 0;
for(i=0;i<len;i++)
{
@@ -211,7 +212,7 @@
{
*actual_x = tx;
*char_offset = utf8clen;
- found = true;
+ //found = true;
}
tx+= glyph->glm_X1;
@@ -234,21 +235,12 @@
}
/*
- while(((*string != ' ')) && (string > ostr))
- {
- * todo: calc size of preceding character *
- utf8len = 1;
- string -= utf8len;
- co -= utf8len;
- }
-*/
-
if(found == false)
{
*char_offset = utf8clen;
*actual_x = tx;
}
-
+*/
free(outf16);
return true;
13 years, 9 months
r9538 chris_y - /trunk/netsurf/amiga/font.c
by netsurf@semichrome.net
Author: chris_y
Date: Sat Sep 5 06:33:05 2009
New Revision: 9538
URL: http://source.netsurf-browser.org?rev=9538&view=rev
Log:
Simplify and fix some long-standing highlight/layout issues
Modified:
trunk/netsurf/amiga/font.c
Modified: trunk/netsurf/amiga/font.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/font.c?rev=9538&r1=...
==============================================================================
--- trunk/netsurf/amiga/font.c (original)
+++ trunk/netsurf/amiga/font.c Sat Sep 5 06:33:05 2009
@@ -97,6 +97,7 @@
size_t len,utf8len;
uint8 *utf8;
uint32 co = 0;
+ int utf16charlen;
len = utf8_bounded_length(string, length);
if(utf8_to_enc(string,"UTF-16",length,(char **)&utf16) != UTF8_CONVERT_OK) return false;
@@ -108,6 +109,14 @@
for(i=0;i<len;i++)
{
+ if (*utf16 < 0xD800 || 0xDFFF < *utf16)
+ utf16charlen = 1;
+ else
+ utf16charlen = 2;
+
+ utf8len = utf8_char_byte_length(string);
+ string+=utf8len;
+
if(ESetInfo(&ofont->olf_EEngine,
OT_GlyphCode,*utf16,
TAG_END) == OTERR_Success)
@@ -116,10 +125,6 @@
OT_GlyphMap8Bit,&glyph,
TAG_END) == 0)
{
- if(utf8_from_enc((char *)utf16,"UTF-16",2,(char **)&utf8) != UTF8_CONVERT_OK) return false;
- utf8len = utf8_char_byte_length(utf8);
- free(utf8);
-
if(x<tx+glyph->glm_X1)
{
i = len+1;
@@ -137,10 +142,7 @@
TAG_END);
}
}
- if (*utf16 < 0xD800 || 0xDFFF < *utf16)
- utf16++;
- else
- utf16 += 2;
+ utf16 += utf16charlen;
}
*char_offset = co;
if(co>=length) *actual_x = tx;
@@ -172,13 +174,15 @@
{
struct TextExtent extent;
ULONG co;
- char *charp;
+ char *ostr = string;
struct TextFont *tfont;
uint16 *utf16 = NULL,*outf16 = NULL;
struct OutlineFont *ofont;
struct GlyphMap *glyph;
uint32 tx=0,i=0;
size_t len;
+ int utf8len, utf8clen = 0;
+ bool found = false;
len = utf8_bounded_length(string, length);
if(utf8_to_enc((char *)string,"UTF-16",length,(char **)&utf16) != UTF8_CONVERT_OK) return false;
@@ -197,37 +201,54 @@
OT_GlyphMap8Bit,&glyph,
TAG_END) == 0)
{
- if(*utf16 == 0x0020)
- {
- *actual_x = tx;
- co = i;
- }
-
- if(x<tx+glyph->glm_X1)
+ if(x < (tx + glyph->glm_X1))
{
i = length+1;
}
-
- tx+= glyph->glm_X1;
+ else
+ {
+ if(*string == ' ') //*utf16 == 0x0020)
+ {
+ *actual_x = tx;
+ *char_offset = utf8clen;
+ found = true;
+ }
+
+ tx+= glyph->glm_X1;
+ }
EReleaseInfo(&ofont->olf_EEngine,
OT_GlyphMap8Bit,glyph,
TAG_END);
}
}
+
if (*utf16 < 0xD800 || 0xDFFF < *utf16)
- utf16++;
+ utf16 += 1;
else
utf16 += 2;
- }
-
- charp = (char *)(string+co);
- while(((*charp != ' ')) && (charp > string))
- {
- charp--;
- co--;
- }
- *char_offset = co;
+
+ utf8len = utf8_char_byte_length(string);
+ string += utf8len;
+ utf8clen += utf8len;
+ }
+
+/*
+ while(((*string != ' ')) && (string > ostr))
+ {
+ * todo: calc size of preceding character *
+ utf8len = 1;
+ string -= utf8len;
+ co -= utf8len;
+ }
+*/
+
+ if(found == false)
+ {
+ *char_offset = utf8clen;
+ *actual_x = tx;
+ }
+
free(outf16);
return true;
13 years, 9 months
r9537 jmb - /trunk/netsurf/css/select.c
by netsurf@semichrome.net
Author: jmb
Date: Sat Sep 5 03:13:34 2009
New Revision: 9537
URL: http://source.netsurf-browser.org?rev=9537&view=rev
Log:
Attribute value comparisons should be case insensitive
Modified:
trunk/netsurf/css/select.c
Modified: trunk/netsurf/css/select.c
URL: http://source.netsurf-browser.org/trunk/netsurf/css/select.c?rev=9537&r1=...
==============================================================================
--- trunk/netsurf/css/select.c (original)
+++ trunk/netsurf/css/select.c Sat Sep 5 03:13:34 2009
@@ -1316,7 +1316,7 @@
if (align == NULL)
return CSS_PROPERTY_NOT_SET;
- if (strcmp((const char *) align, "bottom") == 0) {
+ if (strcasecmp((const char *) align, "bottom") == 0) {
hint->status = CSS_CAPTION_SIDE_BOTTOM;
} else {
xmlFree(align);
@@ -1388,9 +1388,9 @@
if (align == NULL)
return CSS_PROPERTY_NOT_SET;
- if (strcmp((const char *) align, "left") == 0) {
+ if (strcasecmp((const char *) align, "left") == 0) {
hint->status = CSS_FLOAT_LEFT;
- } else if (strcmp((const char *) align, "right") == 0) {
+ } else if (strcasecmp((const char *) align, "right") == 0) {
hint->status = CSS_FLOAT_RIGHT;
} else {
xmlFree(align);
@@ -1666,12 +1666,12 @@
if (align == NULL)
return CSS_PROPERTY_NOT_SET;
- if (strcmp((const char *) align, "center") == 0 ||
- strcmp((const char *) align,
+ if (strcasecmp((const char *) align, "center") == 0 ||
+ strcasecmp((const char *) align,
"abscenter") == 0 ||
- strcmp((const char *) align,
+ strcasecmp((const char *) align,
"middle") == 0 ||
- strcmp((const char *) align,
+ strcasecmp((const char *) align,
"absmiddle") == 0) {
hint->status = CSS_MARGIN_AUTO;
} else {
@@ -1688,7 +1688,7 @@
if (align == NULL)
return CSS_PROPERTY_NOT_SET;
- if (strcmp((const char *) align, "left") == 0) {
+ if (strcasecmp((const char *) align, "left") == 0) {
if (property == CSS_PROP_MARGIN_LEFT) {
hint->data.length.value = 0;
hint->data.length.unit = CSS_UNIT_PX;
@@ -1696,10 +1696,11 @@
} else {
hint->status = CSS_MARGIN_AUTO;
}
- } else if (strcmp((const char *) align,
+ } else if (strcasecmp((const char *) align,
"center") == 0) {
hint->status = CSS_MARGIN_AUTO;
- } else if (strcmp((const char *) align, "right") == 0) {
+ } else if (strcasecmp((const char *) align,
+ "right") == 0) {
if (property == CSS_PROP_MARGIN_RIGHT) {
hint->data.length.value = 0;
hint->data.length.unit = CSS_UNIT_PX;
@@ -1768,14 +1769,15 @@
if (align == NULL)
return CSS_PROPERTY_NOT_SET;
- if (strcmp((const char *) align, "left") == 0) {
+ if (strcasecmp((const char *) align, "left") == 0) {
hint->status = CSS_TEXT_ALIGN_LEFT;
- } else if (strcmp((const char *) align,
+ } else if (strcasecmp((const char *) align,
"center") == 0) {
hint->status = CSS_TEXT_ALIGN_CENTER;
- } else if (strcmp((const char *) align, "right") == 0) {
+ } else if (strcasecmp((const char *) align,
+ "right") == 0) {
hint->status = CSS_TEXT_ALIGN_RIGHT;
- } else if (strcmp((const char *) align,
+ } else if (strcasecmp((const char *) align,
"justify") == 0) {
hint->status = CSS_TEXT_ALIGN_JUSTIFY;
} else {
@@ -1793,14 +1795,16 @@
} else if (strcmp((const char *) n->name, "caption") == 0) {
align = xmlGetProp(n, (const xmlChar *) "align");
- if (align == NULL || strcmp((const char *) align,
+ if (align == NULL || strcasecmp((const char *) align,
"center") == 0) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_CENTER;
- } else if (strcmp((const char *) align, "left") == 0) {
+ } else if (strcasecmp((const char *) align,
+ "left") == 0) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_LEFT;
- } else if (strcmp((const char *) align, "right") == 0) {
+ } else if (strcasecmp((const char *) align,
+ "right") == 0) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_RIGHT;
- } else if (strcmp((const char *) align,
+ } else if (strcasecmp((const char *) align,
"justify") == 0) {
hint->status = CSS_TEXT_ALIGN_JUSTIFY;
} else {
@@ -1824,13 +1828,15 @@
if (align == NULL)
return CSS_PROPERTY_NOT_SET;
- if (strcmp((const char *) align, "center") == 0) {
+ if (strcasecmp((const char *) align, "center") == 0) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_CENTER;
- } else if (strcmp((const char *) align, "left") == 0) {
+ } else if (strcasecmp((const char *) align,
+ "left") == 0) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_LEFT;
- } else if (strcmp((const char *) align, "right") == 0) {
+ } else if (strcasecmp((const char *) align,
+ "right") == 0) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_RIGHT;
- } else if (strcmp((const char *) align,
+ } else if (strcasecmp((const char *) align,
"justify") == 0) {
hint->status = CSS_TEXT_ALIGN_JUSTIFY;
} else {
@@ -1864,15 +1870,15 @@
if (valign == NULL)
return CSS_PROPERTY_NOT_SET;
- if (strcmp((const char *) valign, "top") == 0) {
+ if (strcasecmp((const char *) valign, "top") == 0) {
hint->status = CSS_VERTICAL_ALIGN_TOP;
- } else if (strcmp((const char *) valign,
+ } else if (strcasecmp((const char *) valign,
"middle") == 0) {
hint->status = CSS_VERTICAL_ALIGN_MIDDLE;
- } else if (strcmp((const char *) valign,
+ } else if (strcasecmp((const char *) valign,
"bottom") == 0) {
hint->status = CSS_VERTICAL_ALIGN_BOTTOM;
- } else if (strcmp((const char *) valign,
+ } else if (strcasecmp((const char *) valign,
"baseline") == 0) {
hint->status = CSS_VERTICAL_ALIGN_BASELINE;
} else {
@@ -1894,19 +1900,19 @@
if (valign == NULL)
return CSS_PROPERTY_NOT_SET;
- if (strcmp((const char *) valign, "top") == 0) {
+ if (strcasecmp((const char *) valign, "top") == 0) {
hint->status = CSS_VERTICAL_ALIGN_TOP;
- } else if (strcmp((const char *) valign,
+ } else if (strcasecmp((const char *) valign,
"bottom") == 0 ||
- strcmp((const char *) valign,
+ strcasecmp((const char *) valign,
"baseline") == 0) {
hint->status = CSS_VERTICAL_ALIGN_BASELINE;
- } else if (strcmp((const char *) valign,
+ } else if (strcasecmp((const char *) valign,
"texttop") == 0) {
hint->status = CSS_VERTICAL_ALIGN_TEXT_TOP;
- } else if (strcmp((const char *) valign,
+ } else if (strcasecmp((const char *) valign,
"absmiddle") == 0 ||
- strcmp((const char *) valign,
+ strcasecmp((const char *) valign,
"abscenter") == 0) {
hint->status = CSS_VERTICAL_ALIGN_MIDDLE;
} else {
13 years, 9 months
r9536 chris_y - /trunk/netsurf/amiga/gui.c
by netsurf@semichrome.net
Author: chris_y
Date: Fri Sep 4 17:00:09 2009
New Revision: 9536
URL: http://source.netsurf-browser.org?rev=9536&view=rev
Log:
Make the new horizontal scroller work the same way as the old one and teh vertical
scroller.
Modified:
trunk/netsurf/amiga/gui.c
Modified: trunk/netsurf/amiga/gui.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.c?rev=9536&r1=9...
==============================================================================
--- trunk/netsurf/amiga/gui.c (original)
+++ trunk/netsurf/amiga/gui.c Fri Sep 4 17:00:09 2009
@@ -945,14 +945,8 @@
break;
case WMHI_GADGETUP:
- switch(result & WMHI_GADGETMASK) //gadaddr->GadgetID) //result & WMHI_GADGETMASK)
+ switch(result & WMHI_GADGETMASK)
{
- case GID_HSCROLL:
- if(option_faster_scroll)
- gwin->redraw_scroll = true;
- gwin->redraw_required = true;
- break;
-
case GID_TABS:
ami_switch_tab(gwin,true);
break;
@@ -1912,14 +1906,15 @@
IDCMP_RAWKEY | IDCMP_SIZEVERIFY |
IDCMP_GADGETUP | IDCMP_IDCMPUPDATE |
IDCMP_INTUITICKS | IDCMP_ACTIVEWINDOW |
- IDCMP_EXTENDEDMOUSE,
+ IDCMP_EXTENDEDMOUSE | IDCMP_GADGETDOWN,
// WINDOW_IconifyGadget, TRUE,
WINDOW_NewMenu,menu,
// WINDOW_HorizProp,1,
WINDOW_VertProp,1,
WINDOW_IDCMPHook,&gwin->shared->scrollerhook,
WINDOW_IDCMPHookBits,IDCMP_IDCMPUPDATE |
- IDCMP_EXTENDEDMOUSE | IDCMP_SIZEVERIFY,
+ IDCMP_EXTENDEDMOUSE | IDCMP_SIZEVERIFY |
+ IDCMP_GADGETDOWN,
WINDOW_AppPort, appport,
WINDOW_AppWindow,TRUE,
WINDOW_SharedPort,sport,
@@ -2146,7 +2141,8 @@
GA_RelRight, 1 - size2 - sz,
GA_Width, size2,
GA_BottomBorder, TRUE,
- GA_RelVerify, TRUE,
+ GA_Immediate, TRUE,
+ ICA_TARGET, ICTARGET_IDCMP,
GA_DrawInfo, dri,
TAG_DONE);
@@ -3238,6 +3234,7 @@
switch( gid )
{
+ case GID_HSCROLL:
case OID_HSCROLL:
case OID_VSCROLL:
// history_set_current_scroll(gwin->bw->history,
13 years, 9 months
r9535 chris_y - /trunk/netsurf/amiga/gui.c
by netsurf@semichrome.net
Author: chris_y
Date: Fri Sep 4 13:10:15 2009
New Revision: 9535
URL: http://source.netsurf-browser.org?rev=9535&view=rev
Log:
Fix kiosk mode
Modified:
trunk/netsurf/amiga/gui.c
Modified: trunk/netsurf/amiga/gui.c
URL: http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.c?rev=9535&r1=9...
==============================================================================
--- trunk/netsurf/amiga/gui.c (original)
+++ trunk/netsurf/amiga/gui.c Fri Sep 4 13:10:15 2009
@@ -819,11 +819,8 @@
case WMHI_MOUSEMOVE:
GetAttr(SPACE_AreaBox,gwin->gadgets[GID_BROWSER],(ULONG *)&bbox);
- x = gwin->win->MouseX - bbox->Left; // mousex should be in intuimessage
- y = gwin->win->MouseY - bbox->Top;
-
- x /= gwin->bw->scale;
- y /= gwin->bw->scale;
+ x = (ULONG)((gwin->win->MouseX - bbox->Left) / gwin->bw->scale);
+ y = (ULONG)((gwin->win->MouseY - bbox->Top) / gwin->bw->scale);
ami_get_hscroll_pos(gwin, (ULONG *)&xs);
ami_get_vscroll_pos(gwin, (ULONG *)&ys);
@@ -874,11 +871,8 @@
case WMHI_MOUSEBUTTONS:
GetAttr(SPACE_AreaBox,gwin->gadgets[GID_BROWSER],(ULONG *)&bbox);
- x = gwin->win->MouseX - bbox->Left;
- y = gwin->win->MouseY - bbox->Top;
-
- x /= gwin->bw->scale;
- y /= gwin->bw->scale;
+ x = (ULONG)((gwin->win->MouseX - bbox->Left) / gwin->bw->scale);
+ y = (ULONG)((gwin->win->MouseY - bbox->Top) / gwin->bw->scale);
ami_get_hscroll_pos(gwin, (ULONG *)&xs);
ami_get_vscroll_pos(gwin, (ULONG *)&ys);
@@ -1655,14 +1649,18 @@
if(!browser_window_reload_available(gwin->bw))
reload=TRUE;
- if(gwin->tabs <= 1)
- {
- tabclose=TRUE;
- OffMenu(gwin->win,AMI_MENU_CLOSETAB);
- }
- else
- {
- OnMenu(gwin->win,AMI_MENU_CLOSETAB);
+ if(gwin->bw->browser_window_type == BROWSER_WINDOW_NORMAL &&
+ option_kiosk_mode == false)
+ {
+ if(gwin->tabs <= 1)
+ {
+ tabclose=TRUE;
+ OffMenu(gwin->win,AMI_MENU_CLOSETAB);
+ }
+ else
+ {
+ OnMenu(gwin->win,AMI_MENU_CLOSETAB);
+ }
}
RefreshSetGadgetAttrs(gwin->gadgets[GID_BACK],gwin->win,NULL,
@@ -2131,8 +2129,8 @@
ICA_TARGET, ICTARGET_IDCMP,
TAG_DONE);
- if((bw->browser_window_type == BROWSER_WINDOW_NORMAL) &&
- (option_kiosk_mode == false))
+ if(bw->browser_window_type == BROWSER_WINDOW_NORMAL &&
+ option_kiosk_mode == false)
{
ULONG sz, size1, size2;
@@ -2779,12 +2777,13 @@
if(!g) return;
if(!text) return;
+ if(!g->shared->gadgets[GID_STATUS]) return;
if(g->tab_node) GetAttr(CLICKTAB_Current,g->shared->gadgets[GID_TABS],(ULONG *)&cur_tab);
if((cur_tab == g->tab) || (g->shared->tabs == 0))
{
- utf8text = ami_utf8_easy(text);
+ utf8text = ami_utf8_easy((char *)text);
if((g->shared->status == NULL) || (strcmp(utf8text,g->shared->status)))
{
@@ -3125,8 +3124,8 @@
g->shared->oldh = 0;
g->shared->oldv = 0;
- if(g->shared->bw->browser_window_type != BROWSER_WINDOW_NORMAL)
- return;
+ if(g->shared->bw->browser_window_type != BROWSER_WINDOW_NORMAL ||
+ option_kiosk_mode == true) return;
if(c->type <= CONTENT_CSS)
{
13 years, 9 months
r9534 MarkieB - in /branches/MarkieB/windows: amiga/history_local.c beos/beos_scaffolding.cpp framebuffer/framebuffer.c gtk/gtk_scaffolding.c riscos/history.c
by netsurf@semichrome.net
Author: MarkieB
Date: Tue Sep 1 11:27:45 2009
New Revision: 9534
URL: http://source.netsurf-browser.org?rev=9534&view=rev
Log:
function stubs for history gui pointer style
Modified:
branches/MarkieB/windows/amiga/history_local.c
branches/MarkieB/windows/beos/beos_scaffolding.cpp
branches/MarkieB/windows/framebuffer/framebuffer.c
branches/MarkieB/windows/gtk/gtk_scaffolding.c
branches/MarkieB/windows/riscos/history.c
Modified: branches/MarkieB/windows/amiga/history_local.c
URL: http://source.netsurf-browser.org/branches/MarkieB/windows/amiga/history_...
==============================================================================
--- branches/MarkieB/windows/amiga/history_local.c (original)
+++ branches/MarkieB/windows/amiga/history_local.c Tue Sep 1 11:27:45 2009
@@ -306,3 +306,13 @@
}
// ReplyMsg((struct Message *)msg);
}
+
+/**
+* gui changes pointer shape in local history window
+* \param shape new shape
+* \param p a pointer sent to history_hover()
+*/
+void history_gui_set_pointer(gui_pointer_shape shape, void *p)
+{
+}
+
Modified: branches/MarkieB/windows/beos/beos_scaffolding.cpp
URL: http://source.netsurf-browser.org/branches/MarkieB/windows/beos/beos_scaf...
==============================================================================
--- branches/MarkieB/windows/beos/beos_scaffolding.cpp (original)
+++ branches/MarkieB/windows/beos/beos_scaffolding.cpp Tue Sep 1 11:27:45 2009
@@ -2311,6 +2311,16 @@
g->top_view->UnlockLooper();
}
+/**
+* gui changes pointer shape in local history window
+* \param shape new shape
+* \param p a pointer sent to history_hover()
+*/
+void history_gui_set_pointer(gui_pointer_shape shape, void *p)
+{
+}
+
+
#warning XXX
#if 0 /* GTK */
gboolean nsbeos_scaffolding_is_busy(nsbeos_scaffolding *scaffold)
Modified: branches/MarkieB/windows/framebuffer/framebuffer.c
URL: http://source.netsurf-browser.org/branches/MarkieB/windows/framebuffer/fr...
==============================================================================
--- branches/MarkieB/windows/framebuffer/framebuffer.c (original)
+++ branches/MarkieB/windows/framebuffer/framebuffer.c Tue Sep 1 11:27:45 2009
@@ -374,3 +374,13 @@
{
return nsfb_cursor_set(nsfb, (nsfb_colour_t *)bm->pixdata, bm->width, bm->height, bm->width);
}
+
+/**
+* gui changes pointer shape in local history window
+* \param shape new shape
+* \param p a pointer sent to history_hover()
+*/
+void history_gui_set_pointer(gui_pointer_shape shape, void *p)
+{
+}
+
Modified: branches/MarkieB/windows/gtk/gtk_scaffolding.c
URL: http://source.netsurf-browser.org/branches/MarkieB/windows/gtk/gtk_scaffo...
==============================================================================
--- branches/MarkieB/windows/gtk/gtk_scaffolding.c (original)
+++ branches/MarkieB/windows/gtk/gtk_scaffolding.c Tue Sep 1 11:27:45 2009
@@ -1730,3 +1730,12 @@
gtk_widget_show(widget5);
}
+
+/**
+* gui changes pointer shape in local history window
+* \param shape new shape
+* \param p a pointer sent to history_hover()
+*/
+void history_gui_set_pointer(gui_pointer_shape shape, void *p)
+{
+}
Modified: branches/MarkieB/windows/riscos/history.c
URL: http://source.netsurf-browser.org/branches/MarkieB/windows/riscos/history...
==============================================================================
--- branches/MarkieB/windows/riscos/history.c (original)
+++ branches/MarkieB/windows/riscos/history.c Tue Sep 1 11:27:45 2009
@@ -316,3 +316,13 @@
return true;
}
+
+/**
+* gui changes pointer shape in local history window
+* \param shape new shape
+* \param p a pointer sent to history_hover()
+*/
+void history_gui_set_pointer(gui_pointer_shape shape, void *p)
+{
+}
+
13 years, 9 months
r9533 MarkieB - /branches/MarkieB/windows/windows/gui.c
by netsurf@semichrome.net
Author: MarkieB
Date: Tue Sep 1 08:08:53 2009
New Revision: 9533
URL: http://source.netsurf-browser.org?rev=9533&view=rev
Log:
right-click menu
Modified:
branches/MarkieB/windows/windows/gui.c
Modified: branches/MarkieB/windows/windows/gui.c
URL: http://source.netsurf-browser.org/branches/MarkieB/windows/windows/gui.c?...
==============================================================================
--- branches/MarkieB/windows/windows/gui.c (original)
+++ branches/MarkieB/windows/windows/gui.c Tue Sep 1 08:08:53 2009
@@ -89,6 +89,7 @@
HWND vscroll; /**< vertical scrollbar handle */
HWND hscroll; /**< horizontal scrollbar handle */
HMENU mainmenu; /**< the main menu */
+ HMENU rclick; /**< the right-click menu */
HDC bufferdc; /**< the screen buffer */
HBITMAP bufferbm; /**< the buffer bitmap */
struct nsws_localhistory *localhistory;
@@ -198,6 +199,7 @@
static void nsws_window_init_pointers(void);
static void redraw(void);
static void nsws_window_update_forward_back(struct gui_window *);
+static void nsws_update_edit(struct gui_window *w);
static bool gui_selection_traverse_handler(const char *text, size_t length,
struct box *box, void *handle, const char *space_text,
size_t space_length);
@@ -811,36 +813,16 @@
return DefWindowProc(hwnd, msg, wparam, lparam);
break;
}
- case WM_ENTERMENULOOP: {
- bool paste, copy, del;
- if (GetFocus() == w->urlbar) {
- DWORD i, ii;
- SendMessage(w->urlbar, EM_GETSEL, (WPARAM)&i,
- (LPARAM)&ii);
- paste = true;
- copy = (i != ii);
- del = (i != ii);
-
- } else if ((w->bw != NULL) && (w->bw->sel != NULL)){
- paste = (w->bw->paste_callback != NULL);
- copy = w->bw->sel->defined;
- del = ((w->bw->sel->defined) &&
- (w->bw->caret_callback != NULL));
- } else {
- paste = false;
- copy = false;
- del = false;
- }
- EnableMenuItem(w->mainmenu, NSWS_ID_EDIT_PASTE, (paste ?
- MF_ENABLED : MF_GRAYED));
- EnableMenuItem(w->mainmenu, NSWS_ID_EDIT_COPY, (copy ?
- MF_ENABLED : MF_GRAYED));
- EnableMenuItem(w->mainmenu, NSWS_ID_EDIT_CUT, (del ?
- MF_ENABLED : MF_GRAYED));
- EnableMenuItem(w->mainmenu, NSWS_ID_EDIT_DELETE, (del ?
- MF_ENABLED : MF_GRAYED));
-
+ case WM_ENTERMENULOOP:
+ nsws_update_edit(w);
return DefWindowProc(hwnd, msg, wparam, lparam);
+ case WM_CONTEXTMENU: {
+ int x,y;
+ x = GET_X_LPARAM(lparam);
+ y = GET_Y_LPARAM(lparam);
+ nsws_update_edit(w);
+ TrackPopupMenu(w->rclick, TPM_CENTERALIGN | TPM_TOPALIGN, x, y,
+ 0, hwnd, NULL);
}
case WM_COMMAND:
{
@@ -1540,7 +1522,23 @@
SetMenu(w->main, hMenu);
w->mainmenu = hMenu;
-
+
+ hsubMenu = CreatePopupMenu();
+ AppendMenu(hsubMenu, MF_STRING, NSWS_ID_NAV_BACK, "&Back");
+ AppendMenu(hsubMenu, MF_STRING, NSWS_ID_NAV_FORWARD, "F&orward");
+ AppendMenu(hsubMenu, MF_STRING, NSWS_ID_NAV_HOME, "&Home");
+ AppendMenu(hsubMenu, MF_STRING, NSWS_ID_NAV_STOP, "&Stop");
+ AppendMenu(hsubMenu, MF_STRING, NSWS_ID_NAV_RELOAD, "&Reload");
+ AppendMenu(hsubMenu, MF_SEPARATOR, 0, NULL);
+ AppendMenu(hsubMenu, MF_STRING | MF_GRAYED, NSWS_ID_EDIT_CUT, "cu&t");
+ AppendMenu(hsubMenu, MF_STRING | MF_GRAYED, NSWS_ID_EDIT_COPY,
+ "©");
+ AppendMenu(hsubMenu, MF_STRING | MF_GRAYED, NSWS_ID_EDIT_PASTE,
+ "&paste");
+ AppendMenu(hsubMenu, MF_STRING | MF_GRAYED, NSWS_ID_EDIT_DELETE,
+ "&delete");
+
+ w->rclick = hsubMenu;
nsws_window_set_accels(w);
}
@@ -1768,6 +1766,10 @@
(forward ? MF_ENABLED : MF_GRAYED));
EnableMenuItem(w->mainmenu, NSWS_ID_NAV_BACK,
(back ? MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(w->rclick, NSWS_ID_NAV_FORWARD,
+ (forward ? MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(w->rclick, NSWS_ID_NAV_BACK,
+ (back ? MF_ENABLED : MF_GRAYED));
}
if (w->toolbar != NULL) {
SendMessage(w->toolbar, TB_SETSTATE,
@@ -1780,6 +1782,44 @@
TBSTATE_INDETERMINATE), 0));
}
}
+
+void nsws_update_edit(struct gui_window *w)
+{
+ bool paste, copy, del;
+ if (GetFocus() == w->urlbar) {
+ DWORD i, ii;
+ SendMessage(w->urlbar, EM_GETSEL, (WPARAM)&i,
+ (LPARAM)&ii);
+ paste = true;
+ copy = (i != ii);
+ del = (i != ii);
+
+ } else if ((w->bw != NULL) && (w->bw->sel != NULL)){
+ paste = (w->bw->paste_callback != NULL);
+ copy = w->bw->sel->defined;
+ del = ((w->bw->sel->defined) &&
+ (w->bw->caret_callback != NULL));
+ } else {
+ paste = false;
+ copy = false;
+ del = false;
+ }
+ EnableMenuItem(w->mainmenu, NSWS_ID_EDIT_PASTE, (paste ?
+ MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(w->mainmenu, NSWS_ID_EDIT_COPY, (copy ?
+ MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(w->mainmenu, NSWS_ID_EDIT_CUT, (del ?
+ MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(w->mainmenu, NSWS_ID_EDIT_DELETE, (del ?
+ MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(w->rclick, NSWS_ID_EDIT_PASTE, (paste ?
+ MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(w->rclick, NSWS_ID_EDIT_COPY, (copy ?
+ MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(w->rclick, NSWS_ID_EDIT_CUT, (del ?
+ MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(w->rclick, NSWS_ID_EDIT_DELETE, (del ?
+ MF_ENABLED : MF_GRAYED));}
HWND gui_window_main_window(struct gui_window *w)
{
@@ -2180,6 +2220,10 @@
EnableMenuItem(w->mainmenu, NSWS_ID_NAV_STOP, MF_ENABLED);
EnableMenuItem(w->mainmenu, NSWS_ID_NAV_RELOAD, MF_GRAYED);
}
+ if (w->rclick != NULL) {
+ EnableMenuItem(w->rclick, NSWS_ID_NAV_STOP, MF_ENABLED);
+ EnableMenuItem(w->rclick, NSWS_ID_NAV_RELOAD, MF_GRAYED);
+ }
if (w->toolbar != NULL) {
SendMessage(w->toolbar, TB_SETSTATE, (WPARAM) NSWS_ID_NAV_STOP,
MAKELONG(TBSTATE_ENABLED, 0));
@@ -2199,6 +2243,10 @@
if (w->mainmenu != NULL) {
EnableMenuItem(w->mainmenu, NSWS_ID_NAV_STOP, MF_GRAYED);
EnableMenuItem(w->mainmenu, NSWS_ID_NAV_RELOAD, MF_ENABLED);
+ }
+ if (w->rclick != NULL) {
+ EnableMenuItem(w->rclick, NSWS_ID_NAV_STOP, MF_GRAYED);
+ EnableMenuItem(w->rclick, NSWS_ID_NAV_RELOAD, MF_ENABLED);
}
if (w->toolbar != NULL) {
SendMessage(w->toolbar, TB_SETSTATE, (WPARAM) NSWS_ID_NAV_STOP,
13 years, 9 months
r9532 MarkieB - /branches/MarkieB/windows/windows/gui.c
by netsurf@semichrome.net
Author: MarkieB
Date: Tue Sep 1 07:15:27 2009
New Revision: 9532
URL: http://source.netsurf-browser.org?rev=9532&view=rev
Log:
optimize code
Modified:
branches/MarkieB/windows/windows/gui.c
Modified: branches/MarkieB/windows/windows/gui.c
URL: http://source.netsurf-browser.org/branches/MarkieB/windows/windows/gui.c?...
==============================================================================
--- branches/MarkieB/windows/windows/gui.c (original)
+++ branches/MarkieB/windows/windows/gui.c Tue Sep 1 07:15:27 2009
@@ -2298,28 +2298,25 @@
bool gui_add_to_clipboard(const char *text, size_t length, bool space)
{
-/* return true;
-*/
HANDLE hnew;
- char *new;
+ char *new, *original;
HANDLE h = GetClipboardData(CF_TEXT);
+ if (h == NULL)
+ original = (char *)"";
+ else
+ original = GlobalLock(h);
+
+ size_t len = strlen(original) + 1;
+ hnew = GlobalAlloc(GHND, length + len);
+ new = (char *)GlobalLock(hnew);
+ snprintf(new, length + len, "%s%s", original, text);
+
if (h != NULL) {
- char *original = GlobalLock(h);
- size_t len = strlen(original) + 1;
- hnew = GlobalAlloc(GHND, length + len);
- new = (char *)GlobalLock(hnew);
- snprintf(new, length + len, "%s%s", original, text);
GlobalUnlock(h);
- GlobalUnlock(hnew);
EmptyClipboard();
- SetClipboardData(CF_TEXT, hnew);
- } else {
- hnew = GlobalAlloc(GHND, length + 1);
- new = (char *)GlobalLock(hnew);
- snprintf(new, length + 1, "%s", text);
- GlobalUnlock(hnew);
- SetClipboardData(CF_TEXT, (HANDLE)hnew);
- }
+ }
+ GlobalUnlock(hnew);
+ SetClipboardData(CF_TEXT, hnew);
return true;
}
13 years, 9 months