summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xamiga/gui.c69
-rwxr-xr-xamiga/gui.h1
2 files changed, 47 insertions, 23 deletions
diff --git a/amiga/gui.c b/amiga/gui.c
index 678e2f44f..0a784e22e 100755
--- a/amiga/gui.c
+++ b/amiga/gui.c
@@ -2172,12 +2172,30 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
GA_Width, size1,
GA_DrawInfo, dri,
GA_BottomBorder, TRUE,
+ GA_ReadOnly, TRUE,
+ GA_Image, (struct Image *)NewObject(
+ NULL,
+ "frameiclass",
+ IA_FrameType, FRAME_DISPLAY,
+ IA_Simple, TRUE,
+ IA_Top, -(scrn->RastPort.TxHeight),
+ IA_Left, -1,
+ IA_Height, 1 + scrn->WBorBottom + scrn->RastPort.TxHeight,
+ IA_InBorder, TRUE,
+ TAG_DONE),
GA_Next, gwin->shared->gadgets[GID_HSCROLL],
TAG_DONE);
AddGList(gwin->shared->win, gwin->shared->gadgets[GID_STATUS],
(UWORD)~0, -1, NULL);
+ /* Apparently you can't set GA_Width on creation time for frbuttonclass */
+
+ SetGadgetAttrs(gwin->shared->gadgets[GID_STATUS],
+ gwin->shared->win, NULL,
+ GA_Width, size1,
+ TAG_DONE);
+
RefreshGadgets((APTR)gwin->shared->gadgets[GID_STATUS],
gwin->shared->win, NULL);
}
@@ -2223,7 +2241,7 @@ ULONG ami_set_border_gadget_balance(struct gui_window_2 *gwin)
GA_Width, size1,
TAG_DONE);
- RefreshWindowFrame(gwin->win);
+ RefreshGList(gwin->gadgets[GID_STATUS], gwin->win, NULL, 2);
}
ULONG ami_get_border_gadget_balance(struct gui_window_2 *gwin, ULONG *size1, ULONG *size2)
@@ -2243,8 +2261,8 @@ ULONG ami_get_border_gadget_balance(struct gui_window_2 *gwin, ULONG *size1, ULO
gad1percent = option_toolbar_status_width / 10000.0;
- *size1 = (ULONG)available_width * gad1percent;
- *size2 = (ULONG)available_width * (1 - gad1percent);
+ *size1 = (ULONG)(available_width * gad1percent);
+ *size2 = (ULONG)(available_width * (1 - gad1percent));
return sz;
}
@@ -2348,34 +2366,39 @@ void gui_window_set_title(struct gui_window *g, const char *title)
{
struct Node *node;
ULONG cur_tab = 0;
- STRPTR newtitle = NULL;
+ char *utf8title;
if(!g) return;
+ if(!title) return;
if(g->tab_node)
{
- node = g->tab_node;
+ utf8title = ami_utf8_easy((char *)title);
- SetGadgetAttrs(g->shared->gadgets[GID_TABS],g->shared->win,NULL,
- CLICKTAB_Labels,~0,
- TAG_DONE);
- newtitle = ami_utf8_easy((char *)title);
- SetClickTabNodeAttrs(node,TNA_Text,newtitle,TAG_DONE);
- if(newtitle) ami_utf8_free(newtitle);
- RefreshSetGadgetAttrs(g->shared->gadgets[GID_TABS],g->shared->win,NULL,
- CLICKTAB_Labels,&g->shared->tab_list,
- TAG_DONE);
+ if((g->shared->wintitle == NULL) || (strcmp(utf8title, g->shared->wintitle)))
+ {
+ node = g->tab_node;
- if(ClickTabBase->lib_Version < 53)
- RethinkLayout(g->shared->gadgets[GID_TABLAYOUT],g->shared->win,NULL,TRUE);
+ SetGadgetAttrs(g->shared->gadgets[GID_TABS],g->shared->win,NULL,
+ CLICKTAB_Labels,~0,
+ TAG_DONE);
+ if(g->shared->wintitle) ami_utf8_free(g->shared->wintitle);
+ g->shared->wintitle = utf8title;
+ SetClickTabNodeAttrs(node,TNA_Text, g->shared->wintitle, TAG_DONE);
+ RefreshSetGadgetAttrs(g->shared->gadgets[GID_TABS],g->shared->win,NULL,
+ CLICKTAB_Labels,&g->shared->tab_list,
+ TAG_DONE);
- GetAttr(CLICKTAB_Current,g->shared->gadgets[GID_TABS],(ULONG *)&cur_tab);
- }
+ if(ClickTabBase->lib_Version < 53)
+ RethinkLayout(g->shared->gadgets[GID_TABLAYOUT],g->shared->win,NULL,TRUE);
- if((cur_tab == g->tab) || (g->shared->tabs == 0))
- {
- if(g->shared->win->Title) ami_utf8_free(g->shared->win->Title);
- SetWindowTitles(g->shared->win,ami_utf8_easy((char *)title),nsscreentitle);
+ GetAttr(CLICKTAB_Current,g->shared->gadgets[GID_TABS],(ULONG *)&cur_tab);
+
+ if((cur_tab == g->tab) || (g->shared->tabs == 0))
+ {
+ SetWindowTitles(g->shared->win, g->shared->wintitle, nsscreentitle);
+ }
+ }
}
}
@@ -2802,7 +2825,7 @@ void gui_window_set_status(struct gui_window *g, const char *text)
GA_Text, utf8text,
TAG_DONE);
- RefreshWindowFrame(g->shared->win);
+ RefreshGList(g->shared->gadgets[GID_STATUS],g->shared->win,NULL,1);
if(g->shared->status) ami_utf8_free(g->shared->status);
g->shared->status = utf8text;
diff --git a/amiga/gui.h b/amiga/gui.h
index ef55c8c55..ddf1dc9b2 100755
--- a/amiga/gui.h
+++ b/amiga/gui.h
@@ -100,6 +100,7 @@ struct gui_window_2 {
bool new_content;
char *svbuffer;
char *status;
+ char *wintitle;
};
struct gui_window