summaryrefslogtreecommitdiff
path: root/branch-3.0-2011/src/Fl_Help_Dialog.cxx
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2011-01-08 16:28:16 +0000
committerMatthias Melcher <fltk@matthiasm.com>2011-01-08 16:28:16 +0000
commit2dc664935d8109767c2d107c6b644082fe06ac05 (patch)
tree6e5e622962a1503161b86884cd3423cb2bba1ab1 /branch-3.0-2011/src/Fl_Help_Dialog.cxx
parentf62a6a927a8ce7aa91b023e7aafad9b5ff96f755 (diff)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8217 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'branch-3.0-2011/src/Fl_Help_Dialog.cxx')
-rw-r--r--branch-3.0-2011/src/Fl_Help_Dialog.cxx301
1 files changed, 301 insertions, 0 deletions
diff --git a/branch-3.0-2011/src/Fl_Help_Dialog.cxx b/branch-3.0-2011/src/Fl_Help_Dialog.cxx
new file mode 100644
index 000000000..6c46c6742
--- /dev/null
+++ b/branch-3.0-2011/src/Fl_Help_Dialog.cxx
@@ -0,0 +1,301 @@
+//
+// "$Id$"
+//
+// Fl_Help_Dialog dialog for the Fast Light Tool Kit (FLTK).
+//
+// Copyright 1998-2010 by Bill Spitzak and others.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library 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
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+// Please report all bugs and problems on the following page:
+//
+// http://www.fltk.org/str.php
+//
+
+// generated by Fast Light User Interface Designer (fluid) version 1.0108
+
+#include "../FL/Fl_Help_Dialog.H"
+#include "flstring.h"
+#include <FL/fl_ask.H>
+
+void Fl_Help_Dialog::cb_back__i(Fl_Button*, void*) {
+ if (index_ > 0)
+ index_ --;
+
+if (index_ == 0)
+ back_->deactivate();
+
+forward_->activate();
+
+int l = line_[index_];
+
+if (strcmp(view_->filename(), file_[index_]) != 0)
+ view_->load(file_[index_]);
+
+view_->topline(l);
+}
+void Fl_Help_Dialog::cb_back_(Fl_Button* o, void* v) {
+ ((Fl_Help_Dialog*)(o->parent()->parent()->user_data()))->cb_back__i(o,v);
+}
+
+void Fl_Help_Dialog::cb_forward__i(Fl_Button*, void*) {
+ if (index_ < max_)
+ index_ ++;
+
+if (index_ >= max_)
+ forward_->deactivate();
+
+back_->activate();
+
+int l = view_->topline();
+
+if (strcmp(view_->filename(), file_[index_]) != 0)
+ view_->load(file_[index_]);
+
+view_->topline(l);
+}
+void Fl_Help_Dialog::cb_forward_(Fl_Button* o, void* v) {
+ ((Fl_Help_Dialog*)(o->parent()->parent()->user_data()))->cb_forward__i(o,v);
+}
+
+void Fl_Help_Dialog::cb_smaller__i(Fl_Button*, void*) {
+ if (view_->textsize() > 8)
+ view_->textsize(view_->textsize() - 2);
+
+if (view_->textsize() <= 8)
+ smaller_->deactivate();
+larger_->activate();
+}
+void Fl_Help_Dialog::cb_smaller_(Fl_Button* o, void* v) {
+ ((Fl_Help_Dialog*)(o->parent()->parent()->user_data()))->cb_smaller__i(o,v);
+}
+
+void Fl_Help_Dialog::cb_larger__i(Fl_Button*, void*) {
+ if (view_->textsize() < 18)
+ view_->textsize(view_->textsize() + 2);
+
+if (view_->textsize() >= 18)
+ larger_->deactivate();
+smaller_->activate();
+}
+void Fl_Help_Dialog::cb_larger_(Fl_Button* o, void* v) {
+ ((Fl_Help_Dialog*)(o->parent()->parent()->user_data()))->cb_larger__i(o,v);
+}
+
+void Fl_Help_Dialog::cb_find__i(Fl_Input*, void*) {
+ find_pos_ = view_->find(find_->value(), find_pos_);
+}
+void Fl_Help_Dialog::cb_find_(Fl_Input* o, void* v) {
+ ((Fl_Help_Dialog*)(o->parent()->parent()->parent()->user_data()))->cb_find__i(o,v);
+}
+
+void Fl_Help_Dialog::cb_view__i(Fl_Help_View*, void*) {
+ if (view_->filename())
+{
+ if (view_->changed())
+ {
+ index_ ++;
+
+ if (index_ >= 100)
+ {
+ memmove(line_, line_ + 10, sizeof(line_[0]) * 90);
+ memmove(file_, file_ + 10, sizeof(file_[0]) * 90);
+ index_ -= 10;
+ }
+
+ max_ = index_;
+
+ strlcpy(file_[index_], view_->filename(),sizeof(file_[0]));
+ line_[index_] = view_->topline();
+
+ if (index_ > 0)
+ back_->activate();
+ else
+ back_->deactivate();
+
+ forward_->deactivate();
+ window_->label(view_->title());
+ }
+ else // if ! view_->changed()
+ {
+ strlcpy(file_[index_], view_->filename(), sizeof(file_[0]));
+ line_[index_] = view_->topline();
+ }
+} else { // if ! view_->filename()
+ index_ = 0; // hitting an internal page will disable the back/fwd buffer
+ file_[index_][0] = 0; // unnamed internal page
+ line_[index_] = view_->topline();
+ back_->deactivate();
+ forward_->deactivate();
+};
+}
+void Fl_Help_Dialog::cb_view_(Fl_Help_View* o, void* v) {
+ ((Fl_Help_Dialog*)(o->parent()->user_data()))->cb_view__i(o,v);
+}
+
+Fl_Help_Dialog::Fl_Help_Dialog() {
+ { window_ = new Fl_Double_Window(530, 385, "Help Dialog");
+ window_->user_data((void*)(this));
+ { Fl_Group* o = new Fl_Group(10, 10, 511, 25);
+ { back_ = new Fl_Button(10, 10, 25, 25, "@<-");
+ back_->tooltip("Show the previous help page.");
+ back_->shortcut(0xff51);
+ back_->labelcolor((Fl_Color)2);
+ back_->callback((Fl_Callback*)cb_back_);
+ } // Fl_Button* back_
+ { forward_ = new Fl_Button(45, 10, 25, 25, "@->");
+ forward_->tooltip("Show the next help page.");
+ forward_->shortcut(0xff53);
+ forward_->labelcolor((Fl_Color)2);
+ forward_->callback((Fl_Callback*)cb_forward_);
+ } // Fl_Button* forward_
+ { smaller_ = new Fl_Button(80, 10, 25, 25, "F");
+ smaller_->tooltip("Make the help text smaller.");
+ smaller_->labelfont(1);
+ smaller_->labelsize(10);
+ smaller_->callback((Fl_Callback*)cb_smaller_);
+ } // Fl_Button* smaller_
+ { larger_ = new Fl_Button(115, 10, 25, 25, "F");
+ larger_->tooltip("Make the help text larger.");
+ larger_->labelfont(1);
+ larger_->labelsize(16);
+ larger_->callback((Fl_Callback*)cb_larger_);
+ } // Fl_Button* larger_
+ { Fl_Group* o = new Fl_Group(350, 10, 171, 25);
+ o->box(FL_DOWN_BOX);
+ o->color(FL_BACKGROUND2_COLOR);
+ { find_ = new Fl_Input(375, 12, 143, 21, "@search");
+ find_->tooltip("find text in document");
+ find_->box(FL_FLAT_BOX);
+ find_->labelsize(13);
+ find_->textfont(4);
+ find_->callback((Fl_Callback*)cb_find_);
+ find_->when(FL_WHEN_ENTER_KEY_ALWAYS);
+ } // Fl_Input* find_
+ o->end();
+ } // Fl_Group* o
+ { Fl_Box* o = new Fl_Box(150, 10, 190, 25);
+ Fl_Group::current()->resizable(o);
+ } // Fl_Box* o
+ o->end();
+ } // Fl_Group* o
+ { view_ = new Fl_Help_View(10, 45, 510, 330);
+ view_->box(FL_DOWN_BOX);
+ view_->callback((Fl_Callback*)cb_view_);
+ Fl_Group::current()->resizable(view_);
+ } // Fl_Help_View* view_
+ window_->size_range(260, 150);
+ window_->end();
+ } // Fl_Double_Window* window_
+ back_->deactivate();
+forward_->deactivate();
+
+index_ = -1;
+max_ = 0;
+find_pos_ = 0;
+
+fl_register_images();
+}
+
+Fl_Help_Dialog::~Fl_Help_Dialog() {
+ delete window_;
+}
+
+int Fl_Help_Dialog::h() {
+ return (window_->h());
+}
+
+void Fl_Help_Dialog::hide() {
+ window_->hide();
+}
+
+void Fl_Help_Dialog::load(const char *f) {
+ view_->set_changed();
+view_->load(f);
+window_->label(view_->title());
+}
+
+void Fl_Help_Dialog::position(int xx, int yy) {
+ window_->position(xx, yy);
+}
+
+void Fl_Help_Dialog::resize(int xx, int yy, int ww, int hh) {
+ window_->resize(xx, yy, ww, hh);
+}
+
+void Fl_Help_Dialog::show() {
+ window_->show();
+}
+
+void Fl_Help_Dialog::show(int argc, char **argv) {
+ window_->show(argc, argv);
+}
+
+void Fl_Help_Dialog::textsize(Fl_Fontsize s) {
+ view_->textsize(s);
+
+if (s <= 8)
+ smaller_->deactivate();
+else
+ smaller_->activate();
+
+if (s >= 18)
+ larger_->deactivate();
+else
+ larger_->activate();
+}
+
+Fl_Fontsize Fl_Help_Dialog::textsize() {
+ return (view_->textsize());
+}
+
+void Fl_Help_Dialog::topline(const char *n) {
+ view_->topline(n);
+}
+
+void Fl_Help_Dialog::topline(int n) {
+ view_->topline(n);
+}
+
+void Fl_Help_Dialog::value(const char *f) {
+ view_->set_changed();
+view_->value(f);
+window_->label(view_->title());
+}
+
+const char * Fl_Help_Dialog::value() const {
+ return view_->value();
+}
+
+int Fl_Help_Dialog::visible() {
+ return (window_->visible());
+}
+
+int Fl_Help_Dialog::w() {
+ return (window_->w());
+}
+
+int Fl_Help_Dialog::x() {
+ return (window_->x());
+}
+
+int Fl_Help_Dialog::y() {
+ return (window_->y());
+}
+
+//
+// End of "$Id$".
+//