summaryrefslogtreecommitdiffstats
path: root/fltk/fltk/HelpView.h
diff options
context:
space:
mode:
Diffstat (limited to 'fltk/fltk/HelpView.h')
-rw-r--r--fltk/fltk/HelpView.h201
1 files changed, 201 insertions, 0 deletions
diff --git a/fltk/fltk/HelpView.h b/fltk/fltk/HelpView.h
new file mode 100644
index 0000000..152cf29
--- /dev/null
+++ b/fltk/fltk/HelpView.h
@@ -0,0 +1,201 @@
+//
+// "$Id: HelpView.h 5860 2007-05-30 18:32:26Z sanel.z $"
+//
+// Help Viewer widget definitions.
+//
+// Copyright 1997-2006 by Easy Software Products.
+// Image support donated by Matthias Melcher, Copyright 2000.
+//
+// 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 to "fltk-bugs@fltk.org".
+//
+
+#ifndef HelpView_H
+# define HelpView_H
+
+//
+// Include necessary header files...
+//
+
+# include <stdio.h>
+# include <fltk/Group.h>
+# include <fltk/Scrollbar.h>
+# include <fltk/draw.h>
+# include <fltk/SharedImage.h>
+
+namespace fltk {
+
+//
+// HelpFunc type - link callback function for files...
+//
+
+
+typedef const char *(HelpFunc) (Widget *, const char *);
+
+
+//
+// HelpBlock structure...
+//
+
+struct HelpBlock {
+ const char *start, // Start of text
+ *end; // End of text
+ uchar border; // Draw border?
+ Color bgcolor; // Background color
+ int x, // Indentation/starting X coordinate
+ y, // Starting Y coordinate
+ w, // Width
+ h; // Height
+ int line[32]; // Left starting position for each line
+};
+
+//
+// HelpLink structure...
+//
+
+struct HelpLink {
+ char filename[192], // Reference filename
+ name[32]; // Link target (blank if none)
+ int x, // X offset of link text
+ y, // Y offset of link text
+ w, // Width of link text
+ h; // Height of link text
+};
+
+//
+// HelpTarget structure...
+//
+
+struct HelpTarget {
+ char name[32]; // Target name
+ int y; // Y offset of target
+};
+
+//
+// HelpView class...
+//
+
+class FL_API HelpView : public Group //// Help viewer widget
+{
+ enum { RIGHT = -1, CENTER, LEFT }; // Alignments
+
+ char title_[1024]; // Title string
+ Color defcolor_, // Default text color
+ bgcolor_, // Background color
+ textcolor_, // Text color
+ linkcolor_; // Link color
+ Font *textfont_; // Default font for text
+ int textsize_; // Default font size
+ const char *value_; // HTML text value
+
+ int nblocks_, // Number of blocks/paragraphs
+ ablocks_; // Allocated blocks
+ HelpBlock *blocks_; // Blocks
+
+ int nfonts_; // Number of fonts in stack
+ Font *fonts_[100]; // Font stack
+ int fontsizes_[100];
+
+ HelpFunc *link_; // Link transform function
+
+ int nlinks_, // Number of links
+ alinks_; // Allocated links
+ HelpLink *links_; // Links
+
+ int ntargets_, // Number of targets
+ atargets_; // Allocated targets
+ HelpTarget *targets_; // Targets
+
+ char directory_[1024]; // Directory for current file
+ char filename_[1024]; // Current filename
+ int topline_, // Top line in document
+ leftline_, // Lefthand position
+ size_, // Total document length
+ hsize_; // Maximum document width
+ Scrollbar *scrollbar_, // Vertical scrollbar for document
+ *hscrollbar_; // Horizontal scrollbar
+
+ HelpBlock *add_block (const char *s, int xx, int yy, int ww, int hh,
+ uchar border = 0);
+ void add_link (const char *n, int xx, int yy, int ww, int hh);
+ void add_target (const char *n, int yy);
+ static int compare_targets (const HelpTarget * t0,
+ const HelpTarget * t1);
+ int do_align (HelpBlock * block, int line, int xx, int a, int &l);
+ void write_text (const char * buf, const char * ptr, int X, int Y, int X1, int underline);
+ void draw ();
+ void format ();
+ void format_table (int *table_width, int *columns, const char *table);
+ int get_align (const char *p, int a);
+ const char *get_attr (const char *p, const char *n, char *buf, int bufsize);
+ Color get_color (const char *n, Color c);
+ SharedImage *get_image (const char *name, int W, int H);
+ int get_length (const char *l);
+ int handle (int);
+
+ void initfont (Font *&f, int &s);
+ void pushfont (Font *f, int s);
+ void popfont (Font *&f, int &s);
+
+public:
+
+ HelpView (int xx, int yy, int ww, int hh, const char *l = 0);
+
+ ~HelpView ();
+ const char *directory () const {
+ if (directory_[0])
+ return (directory_);
+ else
+ return ((const char *) 0);
+ }
+ const char *filename () const {
+ if (filename_[0])
+ return (filename_);
+ else
+ return ((const char *) 0);
+ } void link (HelpFunc * fn) {
+ link_ = fn;
+ }
+ int load (const char *f);
+ void layout();
+ int size () const { return (size_); }
+
+ void textcolor (Color c);
+ void textfont (Font *f);
+ void textsize (int s);
+
+ Color textcolor () const { return (defcolor_); }
+ Font *textfont () const { return (textfont_); }
+ int textsize () const { return (textsize_); }
+ const char *title () { return (title_); }
+ void topline (const char *n);
+ void topline (int);
+ int topline () const { return (topline_); }
+ void leftline (int);
+ int leftline () const { return (leftline_); }
+ void value (const char *v);
+ const char *value () const { return (value_); }
+ int find (const char *s,int p);
+};
+
+} // namespace fltk
+
+#endif // !HelpView_H
+
+//
+// End of "$Id: HelpView.h 5860 2007-05-30 18:32:26Z sanel.z $".
+//