362 lines
7.3 KiB
C
Executable File
362 lines
7.3 KiB
C
Executable File
/*
|
|
* Copyright 2008 Chris Young <chris@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 "desktop/gui.h"
|
|
#include "desktop/netsurf.h"
|
|
#include "desktop/options.h"
|
|
#include "utils/messages.h"
|
|
#include <proto/exec.h>
|
|
#include <proto/intuition.h>
|
|
#include "amiga/gui.h"
|
|
#include "amiga/plotters.h"
|
|
#include "amiga/schedule.h"
|
|
#include "amiga/object.h"
|
|
#include <proto/timer.h>
|
|
|
|
struct browser_window *curbw;
|
|
|
|
char *default_stylesheet_url;
|
|
char *adblock_stylesheet_url;
|
|
struct gui_window *search_current_window = NULL;
|
|
|
|
struct MsgPort *msgport;
|
|
struct timerequest *tioreq;
|
|
struct Device *TimerBase;
|
|
struct TimerIFace *ITimer;
|
|
|
|
static bool gui_start = true;
|
|
|
|
void gui_init(int argc, char** argv)
|
|
{
|
|
msgport = AllocSysObjectTags(ASOT_PORT,
|
|
ASO_NoTrack,FALSE,
|
|
TAG_DONE);
|
|
|
|
tioreq= (struct timerequest *)AllocSysObjectTags(ASOT_IOREQUEST,
|
|
ASOIOR_Size,sizeof(struct timerequest),
|
|
ASOIOR_ReplyPort,msgport,
|
|
ASO_NoTrack,FALSE,
|
|
TAG_DONE);
|
|
|
|
OpenDevice("timer.device",UNIT_VBLANK,(struct IORequest *)tioreq,0);
|
|
|
|
TimerBase = (struct Device *)tioreq->tr_node.io_Device;
|
|
ITimer = (struct TimerIFace *)GetInterface((struct Library *)TimerBase,"main",1,NULL);
|
|
|
|
verbose_log = true;
|
|
messages_load("resources/messages"); // check locale language and read appropriate file
|
|
default_stylesheet_url = "file://netsurf/resources/default.css"; //"http://www.unsatisfactorysoftware.co.uk/newlook.css"; //path_to_url(buf);
|
|
options_read("resources/options");
|
|
plot=amiplot;
|
|
|
|
schedule_list = NewObjList();
|
|
|
|
}
|
|
|
|
void gui_init2(int argc, char** argv)
|
|
{
|
|
struct browser_window *bw;
|
|
const char *addr = "http://netsurf-browser.org/welcome/";
|
|
|
|
curbw = browser_window_create(addr, 0, 0, true); // curbw = temp
|
|
}
|
|
|
|
void ami_get_msg(void)
|
|
{
|
|
struct IntuiMessage *message = NULL;
|
|
ULONG class;
|
|
|
|
while(message = (struct IntuiMessage *)GetMsg(curwin->win->UserPort))
|
|
{
|
|
class = message->Class;
|
|
|
|
switch(class)
|
|
{
|
|
case IDCMP_CLOSEWINDOW:
|
|
gui_window_destroy(curwin);
|
|
gui_quit();
|
|
exit(0);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
ReplyMsg((struct Message *)message);
|
|
}
|
|
}
|
|
|
|
void gui_multitask(void)
|
|
{
|
|
printf("mtask\n");
|
|
ami_get_msg();
|
|
|
|
/* Commented out the below as we seem to have an odd concept of multitasking
|
|
where we can't wait for input as other things need to be done.
|
|
|
|
ULONG winsignal = 1L << curwin->win->UserPort->mp_SigBit;
|
|
ULONG signalmask = winsignal;
|
|
ULONG signals;
|
|
|
|
signals = Wait(signalmask);
|
|
|
|
if(signals & winsignal)
|
|
{
|
|
ami_get_msg();
|
|
}
|
|
*/
|
|
}
|
|
|
|
void gui_poll(bool active)
|
|
{
|
|
// printf("poll\n");
|
|
ami_get_msg();
|
|
schedule_run();
|
|
}
|
|
|
|
void gui_quit(void)
|
|
{
|
|
if(ITimer)
|
|
{
|
|
DropInterface((struct Interface *)ITimer);
|
|
}
|
|
|
|
CloseDevice((struct IORequest *) tioreq);
|
|
FreeSysObject(ASOT_IOREQUEST,tioreq);
|
|
FreeSysObject(ASOT_PORT,msgport);
|
|
|
|
FreeObjList(schedule_list);
|
|
}
|
|
|
|
struct gui_window *gui_create_browser_window(struct browser_window *bw,
|
|
struct browser_window *clone)
|
|
{
|
|
struct gui_window *gwin = NULL;
|
|
|
|
gwin = AllocVec(sizeof(struct gui_window),MEMF_CLEAR);
|
|
|
|
if(!gwin)
|
|
{
|
|
printf("not enough mem");
|
|
return 0;
|
|
}
|
|
|
|
gwin->win = OpenWindowTags(NULL,
|
|
WA_CloseGadget, TRUE,
|
|
WA_DragBar, TRUE,
|
|
WA_DepthGadget, TRUE,
|
|
WA_Width, 800,
|
|
WA_Height, 600,
|
|
WA_IDCMP, IDCMP_CLOSEWINDOW,
|
|
WA_Title, "NetSurf",
|
|
WA_AutoAdjust, TRUE,
|
|
WA_SizeGadget, TRUE,
|
|
WA_SizeBRight, TRUE,
|
|
WA_SizeBBottom, TRUE,
|
|
TAG_DONE);
|
|
|
|
curwin=gwin; //test
|
|
|
|
return gwin;
|
|
}
|
|
|
|
void gui_window_destroy(struct gui_window *g)
|
|
{
|
|
CloseWindow(g->win);
|
|
FreeVec(g);
|
|
}
|
|
|
|
void gui_window_set_title(struct gui_window *g, const char *title)
|
|
{
|
|
SetWindowTitles(g->win,title,"NetSurf");
|
|
}
|
|
|
|
void gui_window_redraw(struct gui_window *g, int x0, int y0, int x1, int y1)
|
|
{
|
|
DebugPrintF("REDRAW\n");
|
|
}
|
|
|
|
void gui_window_redraw_window(struct gui_window *g)
|
|
{
|
|
DebugPrintF("REDRAW2\n"); // next
|
|
}
|
|
|
|
void gui_window_update_box(struct gui_window *g,
|
|
const union content_msg_data *data)
|
|
{
|
|
}
|
|
|
|
bool gui_window_get_scroll(struct gui_window *g, int *sx, int *sy)
|
|
{
|
|
}
|
|
|
|
void gui_window_set_scroll(struct gui_window *g, int sx, int sy)
|
|
{
|
|
}
|
|
|
|
void gui_window_scroll_visible(struct gui_window *g, int x0, int y0,
|
|
int x1, int y1)
|
|
{
|
|
}
|
|
|
|
void gui_window_position_frame(struct gui_window *g, int x0, int y0,
|
|
int x1, int y1)
|
|
{
|
|
}
|
|
|
|
void gui_window_get_dimensions(struct gui_window *g, int *width, int *height,
|
|
bool scaled)
|
|
{
|
|
}
|
|
|
|
void gui_window_update_extent(struct gui_window *g)
|
|
{
|
|
}
|
|
|
|
void gui_window_set_status(struct gui_window *g, const char *text)
|
|
{
|
|
printf("STATUS: %s\n",text);
|
|
}
|
|
|
|
void gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape)
|
|
{
|
|
}
|
|
|
|
void gui_window_hide_pointer(struct gui_window *g)
|
|
{
|
|
}
|
|
|
|
void gui_window_set_url(struct gui_window *g, const char *url)
|
|
{
|
|
}
|
|
|
|
void gui_window_start_throbber(struct gui_window *g)
|
|
{
|
|
}
|
|
|
|
void gui_window_stop_throbber(struct gui_window *g)
|
|
{
|
|
}
|
|
|
|
void gui_window_place_caret(struct gui_window *g, int x, int y, int height)
|
|
{
|
|
}
|
|
|
|
void gui_window_remove_caret(struct gui_window *g)
|
|
{
|
|
}
|
|
|
|
void gui_window_new_content(struct gui_window *g)
|
|
{
|
|
}
|
|
|
|
bool gui_window_scroll_start(struct gui_window *g)
|
|
{
|
|
}
|
|
|
|
bool gui_window_box_scroll_start(struct gui_window *g,
|
|
int x0, int y0, int x1, int y1)
|
|
{
|
|
}
|
|
|
|
bool gui_window_frame_resize_start(struct gui_window *g)
|
|
{
|
|
}
|
|
|
|
void gui_window_save_as_link(struct gui_window *g, struct content *c)
|
|
{
|
|
}
|
|
|
|
void gui_window_set_scale(struct gui_window *g, float scale)
|
|
{
|
|
}
|
|
|
|
struct gui_download_window *gui_download_window_create(const char *url,
|
|
const char *mime_type, struct fetch *fetch,
|
|
unsigned int total_size, struct gui_window *gui)
|
|
{
|
|
}
|
|
|
|
void gui_download_window_data(struct gui_download_window *dw, const char *data,
|
|
unsigned int size)
|
|
{
|
|
}
|
|
|
|
void gui_download_window_error(struct gui_download_window *dw,
|
|
const char *error_msg)
|
|
{
|
|
}
|
|
|
|
void gui_download_window_done(struct gui_download_window *dw)
|
|
{
|
|
}
|
|
|
|
void gui_drag_save_object(gui_save_type type, struct content *c,
|
|
struct gui_window *g)
|
|
{
|
|
}
|
|
|
|
void gui_drag_save_selection(struct selection *s, struct gui_window *g)
|
|
{
|
|
}
|
|
|
|
void gui_start_selection(struct gui_window *g)
|
|
{
|
|
}
|
|
|
|
void gui_paste_from_clipboard(struct gui_window *g, int x, int y)
|
|
{
|
|
}
|
|
|
|
bool gui_empty_clipboard(void)
|
|
{
|
|
}
|
|
|
|
bool gui_add_to_clipboard(const char *text, size_t length, bool space)
|
|
{
|
|
}
|
|
|
|
bool gui_commit_clipboard(void)
|
|
{
|
|
}
|
|
|
|
bool gui_copy_to_clipboard(struct selection *s)
|
|
{
|
|
}
|
|
|
|
void gui_create_form_select_menu(struct browser_window *bw,
|
|
struct form_control *control)
|
|
{
|
|
}
|
|
|
|
void gui_launch_url(const char *url)
|
|
{
|
|
}
|
|
|
|
bool gui_search_term_highlighted(struct gui_window *g,
|
|
unsigned start_offset, unsigned end_offset,
|
|
unsigned *start_idx, unsigned *end_idx)
|
|
{
|
|
}
|
|
|
|
#ifdef WITH_SSL
|
|
void gui_cert_verify(struct browser_window *bw, struct content *c,
|
|
const struct ssl_cert_info *certs, unsigned long num)
|
|
{
|
|
}
|
|
#endif
|