netsurf/riscos/textselection.c

75 lines
2.0 KiB
C
Raw Normal View History

/*
* This file is part of NetSurf, http://netsurf.sourceforge.net/
* Licensed under the GNU General Public License,
* http://www.opensource.org/licenses/gpl-license
* Copyright 2003 Phil Mellor <monkeyson@users.sourceforge.net>
*/
#include <string.h>
#include "oslib/wimp.h"
#include "netsurf/riscos/gui.h"
#include "netsurf/utils/log.h"
#include "netsurf/utils/utils.h"
void ro_gui_start_selection(wimp_pointer *pointer, wimp_window_state *state,
gui_window *g)
{
wimp_drag drag;
gui_current_drag_type = GUI_DRAG_SELECTION;
current_gui = g;
drag.type = wimp_DRAG_USER_POINT;
drag.initial.x0 = pointer->pos.x;
drag.initial.y0 = pointer->pos.y;
drag.initial.x1 = pointer->pos.x;
drag.initial.y1 = pointer->pos.y;
drag.bbox.x0 = state->visible.x0;
drag.bbox.y0 = state->visible.y0;
drag.bbox.x1 = state->visible.x1;
drag.bbox.y1 = state->visible.y1;
wimp_drag_box(&drag);
}
void ro_gui_selection_drag_end(wimp_dragged *drag)
{
struct browser_action msg;
int final_x0, final_y0;
wimp_window_state state;
state.w = current_gui->window;
wimp_get_window_state(&state);
final_x0 = window_x_units(drag->final.x0, &state) / 2;
final_y0 = window_y_units(drag->final.y0, &state) / 2;
msg.data.mouse.x = final_x0;
msg.data.mouse.y = final_y0;
msg.type = act_ALTER_SELECTION;
browser_window_action(current_gui->data.browser.bw, &msg);
if (box_position_eq(&(current_gui->data.browser.bw->current_content->data.html.text_selection.start),
&(current_gui->data.browser.bw->current_content->data.html.text_selection.end)))
{
msg.type = act_CLEAR_SELECTION;
browser_window_action(current_gui->data.browser.bw, &msg);
}
current_gui->drag_status = drag_NONE;
current_gui->data.browser.bw->current_content->data.html.text_selection.altering = alter_UNKNOWN;
}
void ro_gui_copy_selection(gui_window* g)
{
if (g->type == GUI_BROWSER_WINDOW)
{
// if (g->data.browser.bw->text_selection->selected == 1)
// {
// }
}
}