handled button clicks of Regenerate button, filled in text entry
git-svn-id: svn://anubis/misc/sierpinski-gtk@252 bd8a9e45-a331-0410-811e-c64571078777
This commit is contained in:
parent
94e1600456
commit
4ae50b97c8
@ -5,14 +5,17 @@
|
|||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
#include <gtkmm/entry.h>
|
||||||
#include <gdkmm/cursor.h>
|
#include <gdkmm/cursor.h>
|
||||||
|
|
||||||
#include "SierpinskiDA.h"
|
#include "SierpinskiDA.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
SierpinskiDA::SierpinskiDA(const Glib::RefPtr<const Gdk::GL::Config> & config)
|
SierpinskiDA::SierpinskiDA(const Glib::RefPtr<const Gdk::GL::Config> & config,
|
||||||
: Gtk::GL::DrawingArea(config)
|
Gtk::Entry & n_points_entry)
|
||||||
|
: Gtk::GL::DrawingArea(config),
|
||||||
|
m_n_points_entry(n_points_entry)
|
||||||
{
|
{
|
||||||
set_gl_capability(config);
|
set_gl_capability(config);
|
||||||
set_events(Gdk::POINTER_MOTION_MASK
|
set_events(Gdk::POINTER_MOTION_MASK
|
||||||
@ -21,6 +24,12 @@ SierpinskiDA::SierpinskiDA(const Glib::RefPtr<const Gdk::GL::Config> & config)
|
|||||||
| Gdk::SCROLL_MASK);
|
| Gdk::SCROLL_MASK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SierpinskiDA::regenerate_clicked()
|
||||||
|
{
|
||||||
|
regenerate(atoi(m_n_points_entry.get_text().c_str()));
|
||||||
|
queue_draw();
|
||||||
|
}
|
||||||
|
|
||||||
void SierpinskiDA::regenerate(int npts)
|
void SierpinskiDA::regenerate(int npts)
|
||||||
{
|
{
|
||||||
#define deg2rad(x) ((x)/180.0*M_PI)
|
#define deg2rad(x) ((x)/180.0*M_PI)
|
||||||
@ -133,7 +142,7 @@ void SierpinskiDA::on_realize()
|
|||||||
|
|
||||||
gl_end();
|
gl_end();
|
||||||
|
|
||||||
regenerate(10);
|
regenerate(10000);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -7,12 +7,15 @@
|
|||||||
class SierpinskiDA : public Gtk::GL::DrawingArea
|
class SierpinskiDA : public Gtk::GL::DrawingArea
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SierpinskiDA(const Glib::RefPtr<const Gdk::GL::Config> & config);
|
SierpinskiDA(const Glib::RefPtr<const Gdk::GL::Config> & config,
|
||||||
|
Gtk::Entry & n_points_entry);
|
||||||
void regenerate(int npts);
|
void regenerate(int npts);
|
||||||
|
void regenerate_clicked();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int m_x, m_y;
|
int m_x, m_y;
|
||||||
int m_dl;
|
int m_dl;
|
||||||
|
Gtk::Entry & m_n_points_entry;
|
||||||
|
|
||||||
virtual bool draw();
|
virtual bool draw();
|
||||||
virtual void on_realize();
|
virtual void on_realize();
|
||||||
|
@ -44,14 +44,17 @@ int main(int argc, char * argv[])
|
|||||||
mw.set_default_size(400, 420);
|
mw.set_default_size(400, 420);
|
||||||
|
|
||||||
Gtk::VBox vbox;
|
Gtk::VBox vbox;
|
||||||
SierpinskiDA da(glconfig);
|
Gtk::Entry num_points_e;
|
||||||
|
num_points_e.set_text("10000");
|
||||||
|
SierpinskiDA da(glconfig, num_points_e);
|
||||||
vbox.pack_start(da);
|
vbox.pack_start(da);
|
||||||
Gtk::HBox hbox;
|
Gtk::HBox hbox;
|
||||||
Gtk::Label lbl("# of points:");
|
Gtk::Label lbl("# of points:");
|
||||||
hbox.pack_start(lbl, false, false);
|
hbox.pack_start(lbl, false, false);
|
||||||
Gtk::Entry num_points_e;
|
|
||||||
hbox.pack_start(num_points_e, true, true);
|
hbox.pack_start(num_points_e, true, true);
|
||||||
Gtk::Button regenerate_btn("_Regenerate", true);
|
Gtk::Button regenerate_btn("_Regenerate", true);
|
||||||
|
regenerate_btn.signal_clicked().connect(
|
||||||
|
sigc::mem_fun(da, &SierpinskiDA::regenerate_clicked));
|
||||||
hbox.pack_start(regenerate_btn, false, false);
|
hbox.pack_start(regenerate_btn, false, false);
|
||||||
vbox.pack_start(hbox, Gtk::PACK_SHRINK);
|
vbox.pack_start(hbox, Gtk::PACK_SHRINK);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user