00001
00002
00003
#ifndef _LIBGNOMECANVASMM_CANVAS_H
00004
#define _LIBGNOMECANVASMM_CANVAS_H
00005
00006
#include <glibmm.h>
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
#include <libgnomecanvas/gnome-canvas.h>
00034
#include <libgnomecanvasmm/affinetrans.h>
00035
#include <gtkmm/layout.h>
00036
#include <gdkmm/color.h>
00037
00038
00039
#ifndef DOXYGEN_SHOULD_SKIP_THIS
00040
typedef struct _GnomeCanvas GnomeCanvas;
00041
typedef struct _GnomeCanvasClass GnomeCanvasClass;
00042
#endif
00043
00044
00045
namespace Gnome
00046 {
00047
00048
namespace Canvas
00049 {
class Canvas_Class; }
00050
00051 }
00052
namespace Gnome
00053 {
00054
00055
namespace Canvas
00056 {
00057
00058
class Item;
00059
class Group;
00060
00067 class Canvas :
public Gtk::Layout
00068 {
00069
public:
00070
#ifndef DOXYGEN_SHOULD_SKIP_THIS
00071
typedef Canvas CppObjectType;
00072
typedef Canvas_Class CppClassType;
00073
typedef GnomeCanvas BaseObjectType;
00074
typedef GnomeCanvasClass BaseClassType;
00075
#endif
00076
00077
virtual ~Canvas();
00078
00079
#ifndef DOXYGEN_SHOULD_SKIP_THIS
00080
00081
protected:
00082
friend class Canvas_Class;
00083
static CppClassType canvas_class_;
00084
00085
00086
Canvas(
const Canvas&);
00087
Canvas& operator=(
const Canvas&);
00088
00089
protected:
00090
explicit Canvas(
const Glib::ConstructParams& construct_params);
00091
explicit Canvas(GnomeCanvas* castitem);
00092
00093
#endif
00094
00095
public:
00096
#ifndef DOXYGEN_SHOULD_SKIP_THIS
00097
static GType get_type() G_GNUC_CONST;
00098
static GType get_base_type() G_GNUC_CONST;
00099
#endif
00100
00102 GnomeCanvas*
gobj() {
return reinterpret_cast<GnomeCanvas*>(gobject_); }
00103
00105 const GnomeCanvas*
gobj()
const {
return reinterpret_cast<GnomeCanvas*>(gobject_); }
00106
00107
00108
public:
00109
00110
00111
protected:
00112
00113
00114
00115
virtual void on_draw_background(
const Glib::RefPtr<Gdk::Drawable>& drawable,
int x,
int y,
int width,
int height);
00116
virtual void on_render_background(GnomeCanvasBuf* buf);
00117
00118
00119
private:
00120 ;
00121
public:
00122
Canvas();
00123
00124
00125
00126
00127
00128
00132
Group*
root() const;
00133
00134
00135
00144
void set_scroll_region(
double x1,
double y1,
double x2,
double y2);
00145
00146
00147
00154
void get_scroll_region(
double& x1,
double& y1,
double& x2,
double& y2) const;
00155
00156
00164
void set_center_scroll_region(
bool center);
00165
00166
00171
bool get_center_scroll_region() const;
00172
00173
00174
00175
00188
void set_pixels_per_unit(
double n = 1.0);
00189
00190
00191
00192
00193
00194
00195
00196
00204
void scroll_to(
int x,
int y);
00205
00206
00207
00213
void get_scroll_offsets(
int& cx,
int& cy) const;
00214
00215
00216
00217
00218
00224
void update_now();
00225
00226
00227
00228
00229
00230
00231
00239
Item* get_item_at(
double x,
double y) const;
00240
00241
00242
00243
00244
00245
00255
void request_redraw(
int x1,
int y1,
int x2,
int y2);
00256
00257
00264
void request_redraw(ArtUta* uta);
00265
00266 Art::AffineTrans w2c_affine() const;
00267
00268
00269
00270
00271
00272
00273
00280
void w2c(
double wx,
double wy,
int& cx,
int& cy) const;
00281
00289
void w2c(
double wx,
double wy,
double& cx,
double& cy) const;
00290
00291
00292
00299
void c2w(
int cx,
int cy,
double& wx,
double& wy) const;
00300
00301
00302
00303
00304
00313
void window_to_world (
double winx,
double winy,
double& worldx,
double& worldy) const;
00314
00315
00316
00317
00318
00325
void world_to_window (
double worldx,
double worldy,
double& winx,
double& winy) const;
00326
00327
00328
bool get_color(const Glib::ustring& spec, Gdk::Color& color) const;
00329
00330
00331
00332
00338 gulong get_color_pixel(guint rgba) const;
00339
00345
void set_stipple_origin(const Glib::RefPtr<Gdk::GC>& gc);
00346
00353
void set_dither(Gdk::RgbDither dither);
00354
00358 Gdk::RgbDither get_dither() const;
00359
00360
00361
00362
00368
void update_svp(ArtSVP** p_svp, ArtSVP* new_svp);
00369
00376
void update_svp_clip(ArtSVP** p_svp, ArtSVP* new_svp, ArtSVP* clip_svp);
00377
00378
00379
00380
00381
double get_pixels_per_unit() const;
00382
00383
00384
00385
00386
00387 Glib::SignalProxy5<
void,const Glib::RefPtr<Gdk::Drawable>&,
int,
int,
int,
int > signal_draw_background();
00388
00389
00390
00391
00392
00393
00394
00395 Glib::SignalProxy1<
void,GnomeCanvasBuf* > signal_render_background();
00396
00397
00398 virtual
void request_update_vfunc();
00399
00400
00405 Glib::PropertyProxy<
bool> property_aa() ;
00406
00411 Glib::PropertyProxy_ReadOnly<
bool> property_aa() const;
00412
00413
00414 };
00415
00416
00417
00418 class
CanvasAA : public
Canvas
00419 {
00420
public:
00421
CanvasAA();
00422
virtual ~
CanvasAA();
00423 };
00424
00425 }
00426 }
00427
00428
00429
namespace Glib
00430 {
00436
Gnome::Canvas::Canvas*
wrap(GnomeCanvas* object,
bool take_copy =
false);
00437 }
00438
#endif
00439