20 #ifndef AW_DEVICE_CLICK_HXX
30 #define awt_assert(cond) arb_assert(cond)
80 #define STANDARD_PADDING 10
119 unsigned int refresh : 1;
120 unsigned int resize : 1;
121 unsigned int zoom_reset : 1;
122 unsigned int supdate : 1;
123 unsigned int save : 1;
131 #if defined(UNIT_TESTS)
132 friend class fake_AWT_graphic_tree;
178 default_padding.
t = t;
179 default_padding.
b = b;
180 default_padding.
l = l;
181 default_padding.
r = r;
183 padding = default_padding;
190 padding.
t = default_padding.
t + text_padding.
t;
191 padding.
b = default_padding.
b + text_padding.
b;
192 padding.
l = default_padding.
l + text_padding.
l;
193 padding.
r = default_padding.
r + text_padding.
r;
218 AW_device_click *click_dev;
224 M_key_modifier(event.keymodifier),
225 M_key_code(event.keycode),
226 M_key_char(event.character),
228 mousepos(event.x, event.
y),
229 click_dev(click_dev_)
244 return click_dev ? click_dev->best_click(prefer) :
NULp;
253 bool detect_drag_target;
301 #define EPS 0.0001 // div zero check
302 #define CLIP_OVERLAP 15
303 #define AWT_ZOOM_OUT_STEP 40 // (pixel) rand um screen
304 #define AWT_MIN_WIDTH 100 // Minimum center screen (= screen-offset)
309 bool consider_text_for_size;
363 #if defined(ASSERTION_USED)
369 #define assert_no_auto_refresh_for(CANVAS) awt_assert(!(CANVAS)->inside_auto_refresh())
394 void scroll(
int delta_x,
int delta_y,
bool dont_update_scrollbars =
false);
396 scroll(
int(delta.
x()),
int(delta.
y()), dont_update_scrollbars);
427 if (exports.modifying++ == 0) {
434 if (--exports.modifying <= 0) {
459 awt_assert(!zoom_reset && !resize && refresh);
466 if (refresh && perform_refresh) {
481 #error canvas.hxx included twice
void zoom(AW_device *device, bool zoomIn, const AW::Rectangle &wanted_part, const AW::Rectangle ¤t_part, int percent)
void set_equilateral_default_padding(int pad)
void push_transaction() const
AW_key_code key_code() const
bool inside_auto_refresh() const
void(* screen_update_callback)(AWT_canvas *, AW_CL cd)
virtual GB_ERROR load_from_DB(GBDATA *gb_main, const char *name)=0
AWT_auto_refresh(AWT_canvas *scr_)
void request_zoom_reset()
void set_extra_text_padding(const AW_borders &text_padding)
void set_horizontal_scrollbar_position(AW_window *aww, int pos)
void suppress_update_and_refresh()
void request_structure_update()
void update_display_as_requested(AWT_canvas *scr, bool perform_refresh)
void request_zoom_reset()
AW_key_mod key_modifier() const
void clear_resize_request()
virtual GB_ERROR save_to_DB(GBDATA *gb_main, const char *name)=0
bool inside_auto_refresh() const
int get_left_padding() const
virtual void update_structure()=0
void scroll(const AW::Vector &delta, bool dont_update_scrollbars=false)
void clear_save_request()
int get_y_padding() const
AWT_graphic_event(AWT_COMMAND_MODE cmd_, const AW_event &event, bool is_drag, AW_device_click *click_dev_)
void AWT_expose_cb(UNFIXED, AWT_canvas *scr)
void sync_DB_model_and_view(bool perform_refresh)
void set_standard_default_padding()
void announce_screen_update()
const AW_clicked_element * best_click(AW_device_click::ClickPreference prefer=AW_device_click::PREFER_NEARER)
void instant_zoom_reset()
AWT_canvas(GBDATA *gb_main_, AW_window *aww_, const char *gc_base_name_, AWT_graphic *gfx_)
AW_MouseButton button() const
bool needs_structure_update() const
struct Unfixed_cb_parameter * UNFIXED
bool flags_writeable() const
void clear_structure_update_request()
int get_top_padding() const
void clear_refresh_request()
const AW::Position & position() const
virtual AW_gc_manager * init_devices(AW_window *, AW_device *, AWT_canvas *scr)=0
void drag_target_detection(bool detect)
#define assert_no_auto_refresh_for(CANVAS)
void clear_zoom_reset_request()
const char * get_gc_base_name() const
GB_ERROR save_to_DB(GBDATA *gb_main, const char *name) OVERRIDE __ATTR__USERESULT
void set_dragEndpoint(int x, int y)
void AWT_popup_print_window(AW_window *parent_win, AWT_canvas *scr)
void request_save_and_zoom_reset()
void set_vertical_scrollbar_position(AW_window *aww, int pos)
screen_update_callback announce_update_cb
void check_for_DB_update(GBDATA *gb_main) OVERRIDE
virtual void notify_synchronized(GBDATA *gb_main)=0
GB_ERROR load_from_DB(GBDATA *gb_main, const char *name) OVERRIDE __ATTR__USERESULT
bool inside_update() const
void AWT_popup_tree_export_window(AW_window *parent_win, AWT_canvas *scr)
virtual void handle_command(AW_device *device, AWT_graphic_event &event)=0
void set_default_padding(int t, int b, int l, int r)
void set_mode(AWT_COMMAND_MODE mo)
bool wants_drag_target() const
void scroll(int delta_x, int delta_y, bool dont_update_scrollbars=false)
void request_save_and_zoom_reset()
void request_structure_update()
AW_gc_manager * gc_manager
AW::Vector zoomVector(double transToFit) const
AWT_COMMAND_MODE cmd() const
#define __ATTR__USERESULT
int get_x_padding() const
bool handleWheelEvent(AW_device *device, const AW_event &event)
AWT_graphic_exports exports
void init_device(AW_device *device)
AW_event_type type() const
~AWT_nonDB_graphic() OVERRIDE
int & get_modifying_flag_ref()
void AWT_GC_changed_cb(GcChange whatChanged, AWT_canvas *scr)
bool flags_clearable() const
void pop_transaction() const
void instant_resize(bool adjust_scrollbars)
virtual void check_for_DB_update(GBDATA *gb_main)=0
void set_consider_text_for_zoom_reset(bool consider)
void AWT_resize_cb(UNFIXED, AWT_canvas *scr)
void notify_synchronized(GBDATA *gb_main) OVERRIDE
void AWT_popup_sec_export_window(AW_window *parent_win, AWT_canvas *scr)
virtual void show(AW_device *device)=0