1
0
mirror of https://github.com/gryf/wmaker.git synced 2026-04-04 22:33:35 +02:00

Modified ruler stuff

This commit is contained in:
dan
2000-06-22 22:49:50 +00:00
parent 6f912eded3
commit 6de30498da
3 changed files with 353 additions and 385 deletions

View File

@@ -401,6 +401,23 @@ typedef struct WMInputPanel {
} WMInputPanel;
/* WMRuler stuff */
/* All indentation and tab markers are _relative_ to the left margin marker */
/* a tabstop is a linked list of tabstops, each containing the position of the tabstop */
typedef struct {
int value;
struct WMTabStops *next;
} WMTabStops;
typedef struct {
int left; /* left margin marker */
int right; /* right margin marker */
int first; /* indentation marker for first line only */
int body; /* body indentation marker */
WMTabStops *tabs;
} WMRulerMargins;
@@ -1389,27 +1406,25 @@ int WMGetSplitViewDividerThickness(WMSplitView *sPtr);
/* ...................................................................... */
WMRuler *WMCreateRuler(WMWidget *parent);
WMRuler *WMCreateRuler (WMWidget *parent);
void WMShowRulerTabs(WMRuler *rPtr, Bool Show);
int WMGetRulerMargin(WMRuler *rPtr, int which);
WMRulerMargins WMGetRulerMargins(WMRuler *rPtr);
int WMGetReleasedRulerMargin(WMRuler *rPtr);
void WMSetRulerMargins(WMRuler *rPtr, WMRulerMargins margins);
int WMGetGrabbedRulerMargin(WMRuler *rPtr);
int WMGetReleasedRulerMargin(WMRuler *rPtr);
int WMGetRulerOffset(WMRuler *rPtr);
void WMSetRulerOffset(WMRuler *rPtr, int pixels);
void WMSetRulerMargin(WMRuler *rPtr, int which, int pixels);
void WMSetRulerAction(WMRuler *rPtr, WMAction *action, void *clientData);
void WMSetRulerMoveAction(WMRuler *rPtr, WMAction *action, void *clientData);
void WMSetRulerReleaseAction(WMRuler *rPtr, WMAction *action, void *clientData);
/* ....................................................................... */

View File

@@ -1,4 +1,4 @@
#include "wruler.h"
#include "WINGsP.h"
#define MIN_DOC_WIDTH 10
@@ -30,13 +30,13 @@ typedef struct W_Ruler {
/* Marker for left margin
/* Marker for left margin
|\
| \
|__\
|
| */
|\
| \
|__\
|
| */
static void
drawLeftMarker(Ruler *rPtr)
{
@@ -58,13 +58,13 @@ drawLeftMarker(Ruler *rPtr)
rPtr->fg, points, 4, Convex, CoordModeOrigin);
}
/* Marker for right margin
/* Marker for right margin
/|
/ |
/__|
|
| */
/|
/ |
/__|
|
| */
static void
drawRightMarker(Ruler *rPtr)
@@ -88,7 +88,7 @@ drawRightMarker(Ruler *rPtr)
}
/* Marker for first line only
/* Marker for first line only
_____
|___|
| */
@@ -103,7 +103,7 @@ drawFirstMarker(Ruler *rPtr)
rPtr->fg, xpos, 12, xpos, 22);
}
/* Marker for rest of body
/* Marker for rest of body
_____
\ /
\./ */
@@ -142,20 +142,20 @@ drawRulerOnPixmap(Ruler *rPtr)
char c[3];
int marks[9] = {11, 3, 5, 3, 7, 3, 5, 3};
if(!rPtr->drawBuffer)
if(!rPtr->drawBuffer)
createDrawBuffer(rPtr);
XFillRectangle(rPtr->view->screen->display, rPtr->drawBuffer,
XFillRectangle(rPtr->view->screen->display, rPtr->drawBuffer,
rPtr->bg, 0, 0, rPtr->view->size.width, 40);
WMDrawString(rPtr->view->screen, rPtr->drawBuffer,
WMDrawString(rPtr->view->screen, rPtr->drawBuffer,
rPtr->fg, rPtr->font, rPtr->margins.left+2, 26, "0 inches", 10);
/* marker ticks */
i=j=m=0;
w = rPtr->view->size.width - rPtr->margins.left;
while(m < w) {
/* marker ticks */
i=j=m=0;
w = rPtr->view->size.width - rPtr->margins.left;
while(m < w) {
XDrawLine(rPtr->view->screen->display, rPtr->drawBuffer,
rPtr->fg, rPtr->margins.left+m, 23,
rPtr->margins.left+m, marks[i%8]+23);
@@ -168,19 +168,19 @@ drawRulerOnPixmap(Ruler *rPtr)
rPtr->fg, rPtr->font, rPtr->margins.left+2+m, 26, c, 2);
}
m = (++i)*10;
}
}
rPtr->end = rPtr->margins.left+m-10;
if(rPtr->margins.right > rPtr->end)
rPtr->end = rPtr->margins.left+m-10;
if(rPtr->margins.right > rPtr->end)
rPtr->margins.right = rPtr->end;
/* base line */
XDrawLine(rPtr->view->screen->display, rPtr->drawBuffer,
/* base line */
XDrawLine(rPtr->view->screen->display, rPtr->drawBuffer,
rPtr->fg, rPtr->margins.left, 22, rPtr->margins.left+m-10, 22);
drawLeftMarker(rPtr);
drawRightMarker(rPtr);
drawFirstMarker(rPtr);
drawBodyMarker(rPtr);
drawLeftMarker(rPtr);
drawRightMarker(rPtr);
drawFirstMarker(rPtr);
drawBodyMarker(rPtr);
}
static void

View File

@@ -1,47 +0,0 @@
#include <WINGs.h>
#include <WINGsP.h>
#include <WUtil.h>
//items in this file go into WINGs.h
#define WC_Ruler 16
typedef struct W_Ruler WMRuler;
/* All indentation and tab markers are _relative_ to the left margin marker */
/* a tabstop is a linked list of tabstops,
* each containing the position of the tabstop */
typedef struct _tabstops {
struct _tabstops *next;
int value;
} WMTabStops;
typedef struct W_RulerMargins {
int left; /* left margin marker */
int right; /* right margin marker */
int first; /* indentation marker for first line only */
int body; /* body indentation marker */
WMTabStops *tabs;
} WMRulerMargins;
WMRuler *WMCreateRuler (WMWidget *parent);
void WMShowRulerTabs(WMRuler *rPtr, Bool Show);
void WMSetRulerMoveAction(WMRuler *rPtr,
WMAction *action, void *clientData);
void WMSetRulerReleaseAction(WMRuler *rPtr,
WMAction *action, void *clientData);
int WMGetRulerOffset(WMRuler *rPtr);
void WMSetRulerOffset(WMRuler *rPtr, int pixels);
WMRulerMargins WMGetRulerMargins(WMRuler *rPtr);
void WMSetRulerMargins(WMRuler *rPtr, WMRulerMargins margins);
int WMGetReleasedRulerMargin(WMRuler *rPtr);
int WMGetGrabbedRulerMargin(WMRuler *rPtr);