1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
/*
* Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
*
* This program 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.
*
* This program 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*/
#ifndef _WF_VIEW_H_
#define _WF_VIEW_H_
#include "wf_mforms.h"
using namespace System;
using namespace Drawing;
using namespace Windows::Forms;
namespace MySQL {
namespace Forms {
public ref class ViewImpl : public ObjectImpl
{
private:
ToolTip^ tooltip;
protected:
ViewImpl(::mforms::View *view);
~ViewImpl();
static void destroy(::mforms::View *self);
static void show(::mforms::View *self, bool show);
static int get_width(::mforms::View *self);
static int get_height(::mforms::View *self);
static int get_preferred_width(::mforms::View *self);
static int get_preferred_height(::mforms::View *self);
static int get_x(::mforms::View *self);
static int get_y(::mforms::View *self);
static void set_size(::mforms::View *self, int w, int h);
static void set_padding(::mforms::View *self, int left, int top, int right, int bottom);
static void set_position(::mforms::View *self, int x, int y);
static void client_to_screen(::mforms::View *self, int& x, int& y);
static void set_enabled(::mforms::View *self, bool flag);
static bool is_enabled(::mforms::View *self);
static View *find_subview(::mforms::View *self, std::string &name);
static void set_name(::mforms::View *self, const std::string& text);
static void relayout(::mforms::View *self);
static void set_needs_repaint(::mforms::View *self);
static void set_tooltip(::mforms::View *self, const std::string& text);
static void set_font(::mforms::View *self, const std::string& text);
static bool is_shown(::mforms::View *self);
static void suspend_layout(::mforms::View *self, bool flag);
static void set_front_color(mforms::View *self, const std::string &color);
static std::string get_front_color(mforms::View *self);
static void set_back_color(mforms::View *self, const std::string &color);
static std::string get_back_color(mforms::View *self);
static void set_back_image(mforms::View *self, const std::string &path, mforms::ImageLayout layout);
static void flush_events(::mforms::View *self);
virtual void initialize() override;
virtual void set_size(int width, int height);
virtual void set_padding(int left, int top, int right, int bottom);
virtual void set_position(int x, int y);
virtual void set_tooltip(const std::string& text);
virtual void set_font(const std::string& text);
virtual ViewImpl^ get_parent();
virtual void relayout();
void set_front_color(String ^color);
String^ get_front_color();
void set_back_color(String ^color);
String^ get_back_color();
void set_back_image(String ^path, mforms::ImageLayout layout);
void OnResize(System::Object^ sender, System::EventArgs^ e);
public:
static void init(Manager ^mgr)
{
::mforms::ControlFactory *f= ::mforms::ControlFactory::get_instance();
DEF_CALLBACK1(void, ::mforms::View*, mgr, f->_view_impl, ViewImpl, destroy);
DEF_CALLBACK1(int, ::mforms::View*, mgr, f->_view_impl, ViewImpl, get_x);
DEF_CALLBACK1(int, ::mforms::View*, mgr, f->_view_impl, ViewImpl, get_y);
DEF_CALLBACK1(int, ::mforms::View*, mgr, f->_view_impl, ViewImpl, get_width);
DEF_CALLBACK1(int, ::mforms::View*, mgr, f->_view_impl, ViewImpl, get_height);
DEF_CALLBACK1(int, ::mforms::View*, mgr, f->_view_impl, ViewImpl, get_preferred_width);
DEF_CALLBACK1(int, ::mforms::View*, mgr, f->_view_impl, ViewImpl, get_preferred_height);
DEF_CALLBACK3(void, ::mforms::View*, int, int, mgr, f->_view_impl, ViewImpl, set_position);
DEF_CALLBACK3(void, ::mforms::View*, int, int, mgr, f->_view_impl, ViewImpl, set_size);
DEF_CALLBACK5(void, ::mforms::View*, int, int, int, int, mgr, f->_view_impl, ViewImpl, set_padding);
DEF_CALLBACK3(void, ::mforms::View*, int&, int&, mgr, f->_view_impl, ViewImpl, client_to_screen);
DEF_CALLBACK2(void, ::mforms::View*, bool, mgr, f->_view_impl, ViewImpl, show);
DEF_CALLBACK2(void, ::mforms::View*, bool, mgr, f->_view_impl, ViewImpl, set_enabled);
DEF_CALLBACK1(bool, ::mforms::View*, mgr, f->_view_impl, ViewImpl, is_enabled);
DEF_CALLBACK2(void, ::mforms::View*, const std::string&, mgr, f->_view_impl, ViewImpl, set_name);
DEF_CALLBACK1(void, ::mforms::View*, mgr, f->_view_impl, ViewImpl, relayout);
DEF_CALLBACK1(void, ::mforms::View*, mgr, f->_view_impl, ViewImpl, set_needs_repaint);
DEF_CALLBACK2(void, ::mforms::View*, const std::string&, mgr, f->_view_impl, ViewImpl, set_tooltip);
DEF_CALLBACK2(void, ::mforms::View*, const std::string&, mgr, f->_view_impl, ViewImpl, set_font);
DEF_CALLBACK1(bool, ::mforms::View*, mgr, f->_view_impl, ViewImpl, is_shown);
DEF_CALLBACK2(void, ::mforms::View*, bool, mgr, f->_view_impl, ViewImpl, suspend_layout);
DEF_CALLBACK2(void, ::mforms::View*, const std::string&, mgr, f->_view_impl, ViewImpl, set_front_color);
DEF_CALLBACK1(std::string, ::mforms::View*, mgr, f->_view_impl, ViewImpl, get_front_color);
DEF_CALLBACK2(void, ::mforms::View*, const std::string&, mgr, f->_view_impl, ViewImpl, set_back_color);
DEF_CALLBACK1(std::string, ::mforms::View*, mgr, f->_view_impl, ViewImpl, get_back_color);
DEF_CALLBACK3(void, ::mforms::View*, const std::string&, ::mforms::ImageLayout, mgr, f->_view_impl, ViewImpl, set_back_image);
DEF_CALLBACK1(void, ::mforms::View*, mgr, f->_view_impl, ViewImpl, flush_events);
}
// Some utility functions.
static bool use_min_width_for_layout(Control^ control);
static bool use_min_height_for_layout(Control^ control);
static void remove_auto_resize(Control^ control, mforms::AutoResizeMode mode);
static bool can_auto_resize_vertically(Control^ control);
static void set_full_auto_resize(Control^ control);
static bool can_auto_resize_horizontally(Control^ control);
static mforms::AutoResizeMode get_auto_resize(Control^ control);
static void set_auto_resize(Control^ control, mforms::AutoResizeMode mode);
static bool is_layout_dirty(Control^ control);
static void set_layout_dirty(Control^ control, bool value);
static void resize_with_docking(Control^ control, System::Drawing::Size& size);
static void adjust_auto_resize_from_docking(Control^ control);
};
};
};
#endif
|