summaryrefslogtreecommitdiff
path: root/atari/history.c
diff options
context:
space:
mode:
authorOle Loots <ole@monochrom.net>2012-06-19 23:04:38 +0000
committerOle Loots <ole@monochrom.net>2012-06-19 23:04:38 +0000
commitcd45e1f44720a563d9b7e9b9bc7ea2b410444d3f (patch)
tree7b1faf1d89cbbe1519943f792650ca1d97bd24da /atari/history.c
parent1f3d249c157cf731bc723f865c3721f684a408a5 (diff)
downloadnetsurf-cd45e1f44720a563d9b7e9b9bc7ea2b410444d3f.tar.gz
netsurf-cd45e1f44720a563d9b7e9b9bc7ea2b410444d3f.tar.bz2
First attempt to implement the global history treeview. There is something wrong with the redraw ( the treeview area of the windo isn't redrawn, also it looks like the treeview content size isn't set )
svn path=/trunk/netsurf/; revision=13973
Diffstat (limited to 'atari/history.c')
-rwxr-xr-xatari/history.c129
1 files changed, 126 insertions, 3 deletions
diff --git a/atari/history.c b/atari/history.c
index 36edcda00..ee47edeba 100755
--- a/atari/history.c
+++ b/atari/history.c
@@ -16,16 +16,139 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "content/urldb.h"
+#include <string.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include "desktop/browser.h"
+#include "desktop/options.h"
+#include "desktop/tree.h"
+#include "desktop/tree_url_node.h"
+#include "desktop/gui.h"
+#include "desktop/history_global_core.h"
#include "desktop/browser.h"
+#include "content/content.h"
+#include "content/hlcache.h"
+#include "content/urldb.h"
+#include "utils/log.h"
+#include "atari/treeview.h"
+#include "atari/findfile.h"
+#include "atari/res/netsurf.rsh"
+#include "atari/history.h"
+
+extern char * tree_directory_icon_name;
+
+struct s_atari_global_history {
+ WINDOW * window;
+ NSTREEVIEW tv; /*< The history treeview handle. */
+ bool open;
+ bool init;
+};
-void global_history_add_recent(const char *url)
+static struct s_atari_global_history gl_history;
+
+
+
+void global_history_add_recent( const char *url )
{
}
-char **global_history_get_recent(int *count)
+char **global_history_get_recent( int *count )
{
return NULL;
}
+
+void global_history_open( void )
+{
+ if( gl_history.init == false ) {
+ printf("history not init");
+ return;
+ }
+ if( gl_history.open == false ) {
+ WindOpen( gl_history.window, -1, -1, app.w/3, app.h/2);
+ gl_history.open = true;
+ atari_treeview_open( gl_history.tv );
+ } else {
+ WindTop( gl_history.window );
+ }
+}
+
+void global_history_close( void )
+{
+ WindClose(gl_history.window);
+ gl_history.open = false;
+ atari_treeview_close( gl_history.tv );
+}
+
+
+static void __CDECL evnt_history_close( WINDOW *win, short buff[8] )
+{
+ global_history_close();
+}
+
+
+static void __CDECL evnt_history_mbutton( WINDOW *win, short buff[8] )
+{
+ /* todo: implement popup?
+ if(evnt.mbut & 2) {
+
+ }
+ */
+}
+
+bool global_history_init( void )
+{
+
+ if( gl_history.init == false ) {
+
+ int flags = ATARI_TREEVIEW_WIDGETS;
+ gl_history.open = false;
+ gl_history.window = WindCreate( flags, 40, 40, app.w, app.h );
+ if( gl_history.window == NULL ) {
+ LOG(("Failed to allocate history window"));
+ return( false );
+ }
+ /* TODO: load hotlist strings from messages */
+ WindSetStr( gl_history.window, WF_NAME, (char*)"History" );
+ //WindSetPtr( gl_history.window, WF_TOOLBAR, tree, evnt_history_toolbar );
+ EvntAttach( gl_history.window, WM_CLOSED, evnt_history_close );
+ EvntAttach( gl_history.window, WM_XBUTTON,evnt_history_mbutton );
+
+ gl_history.tv = atari_treeview_create(
+ history_global_get_tree_flags(),
+ gl_history.window
+ );
+ if (gl_history.tv == NULL) {
+ /* handle it properly, clean up previous allocs */
+ LOG(("Failed to allocate history treeview"));
+ return( false );
+ }
+
+ history_global_initialise( gl_history.tv->tree, "dir.png" );
+ gl_history.init = true;
+ }
+ return( true );
+}
+
+
+void global_history_destroy( void )
+{
+ if( gl_history.init == false ) {
+ return;
+ }
+ if( gl_history.window != NULL ) {
+ history_global_cleanup();
+ if( gl_history.open )
+ global_history_close();
+ WindDelete( gl_history.window );
+ gl_history.window = NULL;
+ atari_treeview_destroy( gl_history.tv );
+ gl_history.init = false;
+ }
+ LOG(("done"));
+}
+
+