예제 #1
0
파일: wruler.c 프로젝트: awmaker/awmaker
static void rulerDidResize(W_ViewDelegate * self, WMView * view)
{
	Ruler *rPtr = (Ruler *) view->self;

	/* Parameter not used, but tell the compiler that it is ok */
	(void) self;

	createDrawBuffer(rPtr);
	rPtr->flags.redraw = True;
	paintRuler(rPtr);

}
예제 #2
0
/**************************************************************
***
**   GraphicalEphemWidgetItem   ---   doPaint
***
***************************************************************/
void GraphicalEphemWidgetItem::doPaint( Painter *painter, const MRect& /*refreshRect*/ )
{
	assert( painter );
	//printf( "GraphicalEphemWidgetItem::doPaint rect %f %f %f %f\n", rect.x, rect.y, rect.width, rect.height );

	xright = rect.x + rect.width;
	ybottom = rect.y + rect.height;

	painter->setDefaults();
	paintRuler( painter );
	paintPlanets( painter );
}
예제 #3
0
파일: wruler.c 프로젝트: awmaker/awmaker
void WMSetRulerMargins(WMRuler * rPtr, WMRulerMargins margins)
{
	if (!rPtr)
		return;
	rPtr->margins.left = margins.left + rPtr->offset;
	rPtr->margins.right = margins.right + rPtr->offset;
	rPtr->margins.first = margins.first + rPtr->offset;
	rPtr->margins.body = margins.body + rPtr->offset;
	rPtr->margins.tabs = margins.tabs;	/*for loop */
	rPtr->flags.redraw = True;
	paintRuler(rPtr);

}
예제 #4
0
파일: wruler.c 프로젝트: awmaker/awmaker
static void handleEvents(XEvent * event, void *data)
{
	Ruler *rPtr = (Ruler *) data;

	switch (event->type) {
	case Expose:
		rulerDidResize(rPtr->view->delegate, rPtr->view);
		break;

	case MotionNotify:
		if (rPtr->flags.buttonPressed && (event->xmotion.state & Button1Mask)) {
			if (verifyMarkerMove(rPtr, event->xmotion.x)) {
				GC gc = WMColorGC(WMDarkGrayColor(rPtr->view->screen));

				if (rPtr->moveAction)
					(rPtr->moveAction) (rPtr, rPtr->clientData);
				rPtr->flags.redraw = True;
				paintRuler(rPtr);
				XSetLineAttributes(rPtr->view->screen->display, gc, 1,
						   LineSolid, CapNotLast, JoinMiter);
				XDrawLine(rPtr->pview->screen->display,
					  rPtr->pview->window,
					  gc, rPtr->motion + 1, 40,
					  rPtr->motion + 1, rPtr->pview->size.height - 5);
			}
		}
		break;

	case ButtonPress:
		if (event->xbutton.button != Button1)
			return;
		rPtr->flags.buttonPressed = True;
		rPtr->flags.whichMarker = whichMarker(rPtr, event->xmotion.x, event->xmotion.y);
		break;

	case ButtonRelease:
		if (event->xbutton.button != Button1)
			return;
		rPtr->flags.buttonPressed = False;
		switch (rPtr->flags.whichMarker) {
		case 1:{
				int change = rPtr->margins.left - rPtr->motion;

				rPtr->margins.first -= change;
				rPtr->margins.body -= change;
				rPtr->margins.left = rPtr->motion;
				rPtr->flags.redraw = True;
				paintRuler(rPtr);
				break;
			}
		case 2:
			rPtr->margins.right = rPtr->motion;
			break;
		case 3:
			rPtr->margins.first = rPtr->motion;
			break;
		case 4:
			rPtr->margins.body = rPtr->motion;
			break;
		case 6:
			rPtr->margins.first = rPtr->margins.body = rPtr->motion;
			break;
		}
		if (rPtr->releaseAction)
			(rPtr->releaseAction) (rPtr, rPtr->clientData);
		break;
	}
}