summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/misc.hh73
1 files changed, 57 insertions, 16 deletions
diff --git a/src/misc.hh b/src/misc.hh
index ebfbac0..b0593da 100644
--- a/src/misc.hh
+++ b/src/misc.hh
@@ -19,42 +19,83 @@
19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20// DEALINGS IN THE SOFTWARE. 20// DEALINGS IN THE SOFTWARE.
21 21
22#ifndef _MISC_HH_
23#define _MISC_HH_
24
22 25
23#ifdef HAVE_CONFIG_H 26#ifdef HAVE_CONFIG_H
24# include "config.h" 27# include "config.h"
25#endif //HAVE_CONFIG_H 28#endif //HAVE_CONFIG_H
26 29
27#include <X11/Xlib.h> 30#include <X11/Xlib.h>
28#include "Theme.hh"
29 31
30#ifndef _MISC_HH_ 32class Misc
31#define _MISC_HH_ 33{
34public:
35 typedef struct FFont
36 {
37 enum FontJustify {LEFT=0, RIGHT, CENTER};
38
39 XFontSet set;
40 XFontSetExtents *set_extents;
41 XFontStruct *fontstruct;
42 FontJustify justify;
43 } Font;
44
45static char *strdup(const char *);
32 46
33// ---- start code stealing ----- 47static void DrawString(Display *display, Window w, GC gc, Misc::Font *font,
48 unsigned int text_w, unsigned int size_w,
49 unsigned int bevel_w, char *text);
34 50
35// ---------------------------------------------------------------------- 51// ----------------------------------------------------------------------
36// xvertext, Copyright (c) 1992 Alan Richardson (mppa3@uk.ac.sussex.syma) 52// xvertext, Copyright (c) 1992 Alan Richardson (mppa3@uk.ac.sussex.syma)
37// ---------------------------------------------------------------------- 53// ----------------------------------------------------------------------
38 54
39#define XV_NOFONT 1 // no such font on X server 55 /* *** The font structures *** */
40#define XV_NOMEM 2 // couldn't do malloc
41#define XV_NOXIMAGE 3 // couldn't create an XImage
42 56
43unsigned int XRotTextWidth(XRotFontStruct *rotfont, char *str, int len); 57 struct BitmapStruct {
44void XRotDrawString(Display *dpy, XRotFontStruct *rotfont, Drawable drawable, 58 int bit_w;
45 GC gc, int x, int y, char *str, int len); 59 int bit_h;
46 60
47//int xv_errno; //TODO: ? 61 Pixmap bm;
62 };
48 63
49// --- stop code stealing --- 64 struct XRotCharStruct {
65 int ascent;
66 int descent;
67 int lbearing;
68 int rbearing;
69 int width;
50 70
51void DrawString(Display *display, Window w, GC gc, FFont *font, 71 BitmapStruct glyph;
52 unsigned int text_w, unsigned int size_w, 72 };
53 unsigned int bevel_w, char *text); 73
74 struct XRotFontStruct {
75 int dir;
76 int height;
77 int max_ascent;
78 int max_descent;
79 int max_char;
80 int min_char;
81 char *name;
82
83 XFontStruct *xfontstruct;
54 84
55void DrawRotString(Display *display, Window w, GC gc, XRotFontStruct *font, 85 Misc::XRotCharStruct per_char[95];
86 };
87static unsigned int XRotTextWidth(Misc::XRotFontStruct *rotfont, char *str, int len);
88static void XRotDrawString(Display *dpy, Misc::XRotFontStruct *rotfont, Drawable drawable,
89 GC gc, int x, int y, char *str, int len);
90
91static void DrawRotString(Display *display, Window w, GC gc, Misc::XRotFontStruct *font,
56 unsigned int align, unsigned int text_w, 92 unsigned int align, unsigned int text_w,
57 unsigned int size_w, unsigned int size_h, 93 unsigned int size_w, unsigned int size_h,
58 unsigned int bevel_w, char *text); 94 unsigned int bevel_w, char *text);
95
96static Misc::XRotFontStruct *Misc::XRotLoadFont(Display *dpy, char *fontname, float angle);
97static void Misc::XRotUnloadFont(Display *dpy, Misc::XRotFontStruct *rotfont);
98
99};
59 100
60#endif //_MISC_HH_ 101#endif //_MISC_HH_