コード例 #1
0
ファイル: imgbutton.go プロジェクト: pkf/dropdot
func imgButton_OnPaint(arg *gform.EventArg) {
	if data, ok := arg.Data().(*gform.PaintEventData); ok {
		var b *ImgButton
		if b, ok = arg.Sender().(*ImgButton); ok {
			var bmp *gform.Bitmap
			switch b.state {
			case IBSNormal:
				bmp = newResBitmap(&b.resNormal)
			case IBSMouseHover:
				bmp = newResBitmap(&b.resMouseOver)
			case IBSClick:
				bmp = newResBitmap(&b.resClick)
			}
			if bmp != nil {
				defer bmp.Dispose()

				if b.Height() != bmp.Height() || b.Width() != bmp.Width() {
					b.SetSize(bmp.Size())
				}

				data.Canvas.DrawBitmap(bmp, 0, 0)
			}
		}
	}
}
コード例 #2
0
ファイル: testcanvas.go プロジェクト: hoperuin/gform
func onpaint(arg *gform.EventArg) {
	if data, ok := arg.Data().(*gform.PaintEventData); ok {
		if bmp, err := gform.NewBitmapFromResource(
			gform.GetAppInstance(),
			w32.MakeIntResource(IDR_PNG1),
			syscall.StringToUTF16Ptr("PNG"),
			gform.RGB(255, 0, 0)); err == nil {
			data.Canvas.DrawBitmap(bmp, 10, 10)
			bmp.Dispose()
		} else {
			println(err.Error())
		}
	}
}
コード例 #3
0
ファイル: progressbutton.go プロジェクト: pkf/dropdot
func progressButton_OnPaint(arg *gform.EventArg) {
	rc := arg.Sender().ClientRect()

	if pb, ok := arg.Sender().(*ProgressButton); ok {
		pen := gform.NewNullPen()
		defer pen.Dispose()
		brush := gform.NewSolidColorBrush(pb.bgColor)
		defer brush.Dispose()

		var data *gform.PaintEventData
		if data, ok = arg.Data().(*gform.PaintEventData); ok {
			data.Canvas.DrawRect(rc, pen, brush)
		}
	}
}
コード例 #4
0
ファイル: mainform.go プロジェクト: pkf/dropdot
func mainform_OnPaint(arg *gform.EventArg) {
	var mf *Mainform
	var ok bool
	var data *gform.PaintEventData

	if mf, ok = arg.Sender().(*Mainform); ok {
		if data, ok = arg.Data().(*gform.PaintEventData); ok {
			gResMainformBkColor := gform.RGB(255, 255, 255)
			bkBrush := gform.NewSolidColorBrush(gResMainformBkColor)
			defer bkBrush.Dispose()
			borderBrush := gform.NewSolidColorBrush(gform.RGB(154, 154, 154))
			defer borderBrush.Dispose()
			borderPen := gform.NewPen(w32.PS_COSMETIC|w32.PS_SOLID, 1, borderBrush)
			defer borderPen.Dispose()
			data.Canvas.DrawRect(mf.ClientRect(), borderPen, bkBrush)

			// Draw title bar
			w := mf.Width()
			titleRect := gform.NewRect(1, 1, w-1, 22)
			titleBrush := gform.NewSolidColorBrush(gMainformTitleBarColor)
			defer titleBrush.Dispose()
			data.Canvas.FillRect(titleRect, titleBrush)

			// Draw title text
			f := gform.NewFont("Bauhaus 93", 9, 0)
			defer f.Dispose()
			titleRect.Inflate(-5, 0)
			data.Canvas.DrawText(mf.Caption(), titleRect, w32.DT_LEFT|w32.DT_VCENTER|w32.DT_SINGLELINE, f, gResMainformBkColor)

			// Draw "Drop Here"
			f = gform.NewFont("Bauhaus 93", 25, gform.FontBold)
			defer f.Dispose()
			bodyRect := gform.NewRect(1, 50, w-1, 120)
			data.Canvas.DrawText("Drop Here", bodyRect, w32.DT_CENTER|w32.DT_VCENTER|w32.DT_SINGLELINE, f, gform.RGB(187, 187, 187))

			// Draw drop arrow
			if bmp, err := gform.NewBitmapFromResource(gform.GetAppInstance(), w32.MakeIntResource(IDR_DROPARROW), gResPNG, gResMainformBkColor); err == nil {
				data.Canvas.DrawBitmap(bmp, (w-bmp.Width())/2, 110)
				bmp.Dispose()
			}

			// Draw bottom panel
			h := mf.Height()
			bottomRect := gform.NewRect(1, 150, w-1, h-1)
			data.Canvas.FillRect(bottomRect, titleBrush)
		}
	}
}
コード例 #5
0
ファイル: statebutton.go プロジェクト: pkf/dropdot
func stateButton_OnPaint(arg *gform.EventArg) {
	if b, ok := arg.Sender().(*StateButton); ok {
		var data *gform.PaintEventData
		if data, ok = arg.Data().(*gform.PaintEventData); ok {
			var bmp *gform.Bitmap
			if b.isChecked {
				bmp = newResBitmap(&b.resChecked)
			} else {
				bmp = newResBitmap(&b.resNormal)
			}
			defer bmp.Dispose()

			data.Canvas.DrawBitmap(bmp, 0, 0)
		}
	}
}