|
|
452870 |
#ifndef GRAPH_H
|
|
|
452870 |
#define GRAPH_H
|
|
|
452870 |
|
|
|
452870 |
|
|
|
452870 |
#include "common.h"
|
|
|
452870 |
|
|
|
dbe1a1 |
#include "X11/Xft/Xft.h"
|
|
|
452870 |
|
|
|
061fcf |
|
|
|
061fcf |
|
|
|
452870 |
typedef enum {
|
|
|
dbe1a1 |
GC_WINDOW,
|
|
|
dbe1a1 |
GC_BUTTON_INACTIVE,
|
|
|
dbe1a1 |
GC_BUTTON_ACTIVE,
|
|
|
dbe1a1 |
GC_BUTTON_ACTIVE2,
|
|
|
dbe1a1 |
GC_TEXT_INACTIVE,
|
|
|
dbe1a1 |
GC_TEXT_ACTIVE,
|
|
|
dbe1a1 |
GC_TEXT_ACTIVE2 } GraphStyle;
|
|
|
452870 |
enum {
|
|
|
dbe1a1 |
GC_COUNT = GC_TEXT_ACTIVE2 + 1 };
|
|
|
452870 |
|
|
|
452870 |
|
|
|
452870 |
typedef struct Graph {
|
|
|
452870 |
App *app;
|
|
|
dbe1a1 |
XftDraw *draw;
|
|
|
dbe1a1 |
XftFont *fonts[FONT_MAX_SIZES];
|
|
|
dbe1a1 |
int fontsCnt;
|
|
|
dbe1a1 |
XftColor colors[GC_COUNT];
|
|
|
452870 |
} Graph;
|
|
|
452870 |
|
|
|
452870 |
|
|
|
dbe1a1 |
typedef struct TextLayoutSize {
|
|
|
dbe1a1 |
int x, y, w, h;
|
|
|
dbe1a1 |
} TextLayoutSize;
|
|
|
dbe1a1 |
|
|
|
dbe1a1 |
|
|
|
452870 |
typedef struct TextLayout {
|
|
|
452870 |
Graph *g;
|
|
|
dbe1a1 |
int len;
|
|
|
dbe1a1 |
const char *text;
|
|
|
dbe1a1 |
TextLayoutSize sizes[FONT_MAX_SIZES];
|
|
|
452870 |
} TextLayout;
|
|
|
452870 |
|
|
|
452870 |
|
|
|
452870 |
|
|
|
452870 |
|
|
|
452870 |
int graphInit(Graph *g, App *app);
|
|
|
452870 |
void graphDeinit(Graph *g);
|
|
|
452870 |
void graphResize(Graph *g);
|
|
|
452870 |
void graphDrawBackgound(Graph *g, int x, int y, int w, int h);
|
|
|
452870 |
void graphDrawButton(Graph *g, int x, int y, int w, int h, int active);
|
|
|
452870 |
|
|
|
843e7a |
void textLayoutInit(TextLayout *tl, Graph *g, const char *text);
|
|
|
452870 |
void textLayoutDeinit(TextLayout *tl);
|
|
|
dbe1a1 |
void textLayoutDraw(TextLayout *tl, int x, int y, int w, int h, int active);
|
|
|
452870 |
|
|
|
452870 |
|
|
|
452870 |
#endif
|