*New Ver 4 : AutoResize EditorGadget And More.... [Windows]
Posted: Wed Jul 21, 2010 5:56 pm
Code: Select all
Procedure Editor_Select(Gadget, LineStart.l, CharStart.l, LineEnd.l, CharEnd.l)
sel.CHARRANGE
sel\cpMin = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, LineStart, 0) + CharStart - 1
If LineEnd = -1
LineEnd = SendMessage_(GadgetID(Gadget), #EM_GETLINECOUNT, 0, 0)-1
EndIf
sel\cpMax = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, LineEnd, 0)
If CharEnd = -1
sel\cpMax + SendMessage_(GadgetID(Gadget), #EM_LINELENGTH, sel\cpMax, 0)
Else
sel\cpMax + CharEnd - 1
EndIf
SendMessage_(GadgetID(Gadget), #EM_EXSETSEL, 0, @sel)
EndProcedure
Procedure Editor_S_FontName(Gadget, FontName.s)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_FACE
PokeS(@format\szFaceName, FontName)
SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure
Procedure Editor_G_FontName(Gadget)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_FACE
SendMessage_(GadgetID(Gadget), #EM_GETCHARFORMAT, #SCF_SELECTION, @format)
MessageRequester("Information","Font Name : "+PeekS(@format\szFaceName),#MB_ICONINFORMATION)
EndProcedure
Procedure Editor_S_FontColor(Gadget, Color.l)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_COLOR
format\crTextColor = Color
SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure
Procedure Editor_G_FontColor(Gadget)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_COLOR
SendMessage_(GadgetID(Gadget), #EM_GETCHARFORMAT, #SCF_SELECTION, @format)
MessageRequester("Information","Font Color : "+"RGB("+Str(Red(format\crTextColor))+","+Str(Green(format\crTextColor))+","+Str(Blue(format\crTextColor))+")",#MB_ICONINFORMATION)
EndProcedure
Procedure Editor_S_FontSize(Gadget, Fontsize.l)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_SIZE
format\yHeight = FontSize*20
SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure
Procedure Editor_G_FontSize(Gadget)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_SIZE
SendMessage_(GadgetID(Gadget), #EM_GETCHARFORMAT, #SCF_SELECTION, @format)
MessageRequester("Information","Font Size-->Line Height : "+Str(format\yHeight/20),#MB_ICONINFORMATION)
EndProcedure
Procedure Editor_S_CharFormat(Gadget, Flags.l)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_ITALIC|#CFM_BOLD|#CFM_STRIKEOUT|#CFM_UNDERLINE
format\dwEffects = Flags
SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure
Procedure Editor_G_CharFormat(Gadget)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_BOLD|#CFM_ITALIC|#CFM_UNDERLINE|#CFM_STRIKEOUT
SendMessage_(GadgetID(Gadget), #EM_GETCHARFORMAT, #SCF_SELECTION, @format)
MessageRequester("Information","Character Format : "+Str(format\dwEffects),#MB_ICONINFORMATION)
EndProcedure
If OpenWindow(0, 0, 0, 500, 500, "EditorGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
EditorGadget(1, 10, 10, 480,300)
For i = 12 To 400
FreeGadget(1)
EditorGadget(1, 10, 10, 480,i)
HideGadget(1,1)
AddGadgetItem(1, 0, "This is a RED, underlined big text")
AddGadgetItem(1, 1, "Times new Roman")
AddGadgetItem(1, 2, "This is Italic and Strikeout")
AddGadgetItem(1, 3, "This is usual Text")
Editor_Select(1, 0, 1, 0, -1)
Editor_S_FontColor(1,$0102FE)
Editor_S_FontSize(1, 18)
Editor_S_CharFormat(1,#CFM_UNDERLINE)
Editor_Select(1, 1, 1, 1, -1)
Editor_S_FontColor(1, $FC0303)
Editor_S_FontSize(1, 14)
Editor_S_CharFormat(1,#CFM_BOLD)
Editor_Select(1, 2, 1, 2, -1)
Editor_S_FontColor(1,$000000)
Editor_S_FontName(1, "Times New Roman")
Editor_S_FontSize(1, 12)
Editor_S_CharFormat(1, #CFM_ITALIC|#CFM_STRIKEOUT)
Editor_Select(1, 4, 0, 4, 1) ;No of Lines + 1
If SendMessage_(GadgetID(1), #EM_GETFIRSTVISIBLELINE,0,0) = 0
Editor_Select(1, 0, 0, 0, 0)
HideGadget(1,0)
Break
EndIf
Next
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf