Superscript & Subscript for ButtonGadget-TextGadegt(Windows)
Posted: Thu Mar 31, 2016 7:38 am
Hi
Code: Select all
CrossCur = LoadCursor_(0, #IDC_HAND)
HelpCur = LoadCursor_(0, #IDC_HELP)
LoadFont(0,"Georgia",14)
LoadFont(1,"Georgia",7)
Procedure TransImage(gad,w,h,text$,fcolor,bcolor)
result$ = RemoveString(text$,",")
result$ = RemoveString(result$,"+")
result$ = RemoveString(result$,"-")
StartDrawing(WindowOutput(0))
DrawingFont(FontID(0))
hh = TextHeight("Q") + 3
pos = TextWidth("W")
ww = TextWidth(result$)
StopDrawing()
If IsImage(gad)
MessageRequester("Error","The image is created before !",#PB_MessageRequester_Ok|#MB_ICONSTOP)
ProcedureReturn
Else
If GadgetType(gad) = #PB_GadgetType_Button
SetWindowLongPtr_(GadgetID(gad),#GWL_STYLE, GetWindowLongPtr_(GadgetID(gad),#GWL_STYLE)|#BS_BITMAP)
ElseIf GadgetType(gad) = #PB_GadgetType_Text
SetWindowLongPtr_(GadgetID(gad),#GWL_STYLE, GetWindowLongPtr_(GadgetID(gad),#GWL_STYLE)|#SS_BITMAP|#SS_NOTIFY)
EndIf
CreateImage(gad,ww,hh,32,$FFFFFF)
n = CountString(text$,",") + 1
EndIf
StartDrawing(ImageOutput(gad))
DrawingMode(#PB_2DDrawing_Transparent )
For k = 1 To n
result$ = StringField(text$, k, ",")
If Left(result$,1) = "+"
result$ = RemoveString(result$,"+",#PB_String_CaseSensitive,1,1)
DrawingFont(FontID(1))
pos = DrawText(pos,0,result$,fcolor)
ElseIf Left(result$,1) = "-"
result$ = RemoveString(result$,"-",#PB_String_CaseSensitive,1,1)
DrawingFont(FontID(1))
pos = DrawText(pos,hh/2,result$,fcolor)
Else
DrawingFont(FontID(0))
pos = DrawText(pos,2,result$,fcolor)
EndIf
Next
For y = 0 To hh-1
For x = 0 To ww-1
DrawingMode(#PB_2DDrawing_Default)
If Point(x,y) = $FFFFFF
DrawingMode(#PB_2DDrawing_AllChannels )
If GadgetType(gad) = #PB_GadgetType_Button
Plot(x,y,$00FFFFFF)
ElseIf GadgetType(gad) = #PB_GadgetType_Text
Plot(x,y,bcolor)
EndIf
EndIf
Next
Next
StopDrawing()
ResizeGadget(gad,#PB_Ignore,#PB_Ignore,#PB_Ignore,hh)
If GadgetType(gad) = #PB_GadgetType_Button
SendMessage_(GadgetID(gad),#BM_SETIMAGE,#IMAGE_BITMAP, ImageID(gad))
ElseIf GadgetType(gad) = #PB_GadgetType_Text
SendMessage_(GadgetID(gad),#STM_SETIMAGE,#IMAGE_BITMAP, ImageID(gad))
EndIf
EndProcedure
OpenWindow(0, 0, 0, 222, 200, "ButtonGadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 10, 10, 200, 0, "")
TransImage(0,140,10,"HH,++2,OO,-RASHAD",0,0)
ContainerGadget(1,10,40,200,26,#PB_Container_Flat)
TextGadget(2, 0, 0, 200, 26, "")
TransImage(2,140,10,"H,-2,O,+RASHAD",$151AFF,$FFDAFEFE)
CloseGadgetList()
SetGadgetColor(1,#PB_Gadget_BackColor,$FFDAFEFE & $FFFFFF)
ButtonGadget(3, 10, 70, 200, 26, "Right Button", #PB_Button_Right)
ButtonGadget(4, 10,100, 200, 60, "Multiline Button (longer text gets automatically wrapped)", #PB_Button_MultiLine)
ButtonGadget(5, 10,170, 200, 20, "Toggle Button", #PB_Button_Toggle)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit=1
Case #WM_MOUSEMOVE
Select ChildWindowFromPoint_(WindowID(0),WindowMouseY(0) << 32 + WindowMouseX(0))
Case GadgetID(0)
SetClassLongPtr_(GadgetID(0), #GCL_HCURSOR, 0)
SetCursor_(CrossCur)
Case GadgetID(1)
SetClassLongPtr_(GadgetID(1), #GCL_HCURSOR, 0)
SetCursor_(HelpCur)
EndSelect
EndSelect
Until Quit=1