diff options
author | Ole Loots <ole@monochrom.net> | 2011-11-28 23:23:28 +0000 |
---|---|---|
committer | Ole Loots <ole@monochrom.net> | 2011-11-28 23:23:28 +0000 |
commit | 999410adc818e9bc9e566580b38954720d7dad55 (patch) | |
tree | 6abf17a5a94a9835673e2b5b5a6542087f010737 /atari/toolbar.h | |
parent | a7ba1b7ccd1178717e8e4a0546282270ed2fb1d6 (diff) | |
download | netsurf-999410adc818e9bc9e566580b38954720d7dad55.tar.gz netsurf-999410adc818e9bc9e566580b38954720d7dad55.tar.bz2 |
I'm actually trying to simplify the frontend code, changes:
- Optimized browser window caret, uses back-buffer now. ( So no content redraw is scheduled by the frontend just for a caret move )
- Fixed a double redraw issue when the browser reformat is pending and the AES also sends an redraw request because of the resize.
- Started to use netsurfs textarea instead of a custom implementation ( to reduce code size ).
svn path=/trunk/netsurf/; revision=13191
Diffstat (limited to 'atari/toolbar.h')
-rwxr-xr-x | atari/toolbar.h | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/atari/toolbar.h b/atari/toolbar.h index 851609bc4..efd8e33ce 100755 --- a/atari/toolbar.h +++ b/atari/toolbar.h @@ -17,7 +17,11 @@ */
#ifndef NS_ATARI_TOOLBAR_H
-#define NS_ATARI_TOOLBAR_H
+#define NS_ATARI_TOOLBAR_H + +#include "desktop/textarea.h" +#include "desktop/textinput.h" +#include "atari/browser.h"
#define TB_BUTTON_WIDTH 32
#define TB_BUTTON_HEIGHT 21 /* includes 1px 3d effect */
@@ -27,13 +31,13 @@ #define THROBBER_MAX_INDEX 12
#define THROBBER_INACTIVE_INDEX 13
#define URLBOX_HEIGHT 21
-/*
- URL Widget Block size: size of memory block to allocated
- when input takes more memory than currently allocated:
-*/
-#define URL_WIDGET_BSIZE 64
-#define URL_WIDGET_MAX_MEM 60000
-
+ +#define TOOLBAR_URL_TEXT_SIZE_PT 14 +#define TOOLBAR_TEXTAREA_HEIGHT 19 +#define TOOLBAR_URL_MARGIN_LEFT 2
+#define TOOLBAR_URL_MARGIN_RIGHT 2 +#define TOOLBAR_URL_MARGIN_TOP 2 +#define TOOLBAR_URL_MARGIN_BOTTOM 2
struct s_tb_button
{
short rsc_id;
@@ -44,15 +48,10 @@ struct s_tb_button struct s_url_widget
{
- short selection_len; /* len & direction of selection */
- short caret_pos; /* cursor pos */
- short char_size; /* size of one character (width & hight) */
- short scrollx; /* current scroll position */
bool redraw; /* widget is only redrawn when this flag is set */
- char * text; /* dynamicall allocated URL string */
- unsigned short allocated;
- unsigned short used; /* memory used by URL (strlen + 1) */
- COMPONENT * comp;
+ struct text_area *textarea; + COMPONENT * comp; + GRECT rdw_area;
};
struct s_throbber_widget
@@ -62,14 +61,15 @@ struct s_throbber_widget short max_index;
bool running;
};
-
+ struct s_toolbar
{
COMPONENT * comp;
- struct gui_window * owner;
+ struct gui_window * owner; struct s_url_widget url;
- struct s_throbber_widget throbber;
- GRECT btdim; /* size & location of buttons */
+ struct s_throbber_widget throbber; + GRECT btdim;
+ /* size & location of buttons: */ struct s_tb_button * buttons;
int btcnt;
};
@@ -81,7 +81,9 @@ void tb_destroy( CMP_TOOLBAR tb ); static void __CDECL evnt_toolbar_redraw( COMPONENT *c, long buff[8], void *data );
//static void __CDECL evnt_toolbar_mbutton( COMPONENT *c, long buff[8], void *data );
static void __CDECL evnt_toolbar_resize( COMPONENT *c, long buff[8], void *data );
-
+ +/* recalculate size/position of nested controls within the toolbar: */ +void tb_adjust_size( struct gui_window * gw );
/* report click to toolbar, relative coords : */
void tb_click( struct gui_window * gw, short mx, short my, short mb, short kstat );
void tb_back_click( struct gui_window * gw );
@@ -96,10 +98,10 @@ void tb_update_buttons( struct gui_window * gw ); void tb_url_click( struct gui_window * gw, short mx, short my, short mb, short kstat );
/* handle keybd event while url widget has focus:*/
bool tb_url_input( struct gui_window * gw, short keycode );
-/* place the caret and adjust scrolling position: */
-void tb_url_place_caret( struct gui_window * gw, int steps, bool abs);
/* set the url: */
-void tb_url_set( struct gui_window * gw, char * text );
+void tb_url_set( struct gui_window * gw, char * text ); +/* perform redraw of invalidated url textinput areas: */ +void tb_url_redraw( struct gui_window * gw );
struct gui_window * tb_gui_window( CMP_TOOLBAR tb );
|