unit fpWebToolsUnit; {$mode objfpc}{$H+} interface uses Classes, SysUtils, ProjectIntf, LCLType; type { THtmlFileDescriptor } THtmlFileDescriptor = class(TProjectFileDescriptor) public constructor Create; override; function GetLocalizedName: string; override; function GetLocalizedDescription: string; override; function GetResourceSource(const ResourceName: string): string; override; function CreateSource(const Filename, SourceName, ResourceName: string): string; override; procedure UpdateDefaultPascalFileExtension(const DefPasExt: string); override; end; { TJSFileDescriptor } TJSFileDescriptor = class(TProjectFileDescriptor) public constructor Create; override; function GetLocalizedName: string; override; function GetLocalizedDescription: string; override; function GetResourceSource(const ResourceName: string): string; override; function CreateSource(const Filename, SourceName, ResourceName: string): string; override; procedure UpdateDefaultPascalFileExtension(const DefPasExt: string); override; end; { TCSSFileDescriptor } TCSSFileDescriptor = class(TProjectFileDescriptor) public constructor Create; override; function GetLocalizedName: string; override; function GetLocalizedDescription: string; override; function GetResourceSource(const ResourceName: string): string; override; function CreateSource(const Filename, SourceName, ResourceName: string): string; override; procedure UpdateDefaultPascalFileExtension(const DefPasExt: string); override; end; procedure Register; //--- procedure ProcHTMLTextBold(Sender: TObject); procedure ProcHTMLTextItalic(Sender: TObject); procedure ProcHTMLTextUnderline(Sender: TObject); procedure ProcHTMLHR(Sender: TObject); procedure ProcHTMLBR(Sender: TObject); procedure ProcHTMLNBSP(Sender: TObject); procedure ProcHTMLComment(Sender: TObject); procedure ProcHTMLLink(Sender: TObject); procedure ProcHTMLImageTag(Sender: TObject); procedure ProcHTMLTextAlignLeft(Sender: TObject); procedure ProcHTMLTextAlignRight(Sender: TObject); procedure ProcHTMLTextAlignCenter(Sender: TObject); procedure ProcHTMLTextAlignJustify(Sender: TObject); //-- procedure ProcHTMLTable(Sender: TObject); procedure ProcHTMLGenList(Sender: TObject); procedure ProcHTMLTableRow(Sender: TObject); procedure ProcHTMLTableData(Sender: TObject); procedure ProcHTMLTableRowWD(Sender: TObject); procedure ProcHTMLTableDataWD(Sender: TObject); //-- Styles procedure ProcHTMLDIVBlock(Sender: TObject); procedure ProcHTMLSpanText(Sender: TObject); procedure ProcHTMLPre(Sender: TObject); procedure ProcHTMLSub(Sender: TObject); procedure ProcHTMLSuper(Sender: TObject); procedure ProcHTMLColor(Sender: TObject); procedure ProcHTMLTextHeader1(Sender: TObject); procedure ProcHTMLTextHeader2(Sender: TObject); procedure ProcHTMLTextHeader3(Sender: TObject); procedure ProcHTMLTextHeader4(Sender: TObject); procedure ProcHTMLTextHeader5(Sender: TObject); procedure ProcHTMLForm(Sender: TObject); procedure ProcHTMLSelect(Sender: TObject); procedure ProcHTMLSelectOptions(Sender: TObject); procedure ProcHTMLSelectOptionsWD(Sender: TObject); procedure ProcHTMLCheckButton(Sender: TObject); procedure ProcHTMLRadioButton(Sender: TObject); procedure ProcHTMLButton(Sender: TObject); procedure ProcHTMLInputTag(Sender: TObject); procedure ProcHTMLInputSubmitTag(Sender: TObject); procedure ProcHTMLInputResetTag(Sender: TObject); procedure ProcHTMLFormFieldSet(Sender: TObject); procedure ProcHTMLFormLegend(Sender: TObject); procedure ProcOtherInsertFileName(Sender: TObject); procedure InsertTextToCurEditor(const S:string); implementation uses LResources, NewItemIntf, Forms, Controls, IDECommands, MenuIntf, SrcEditorIntf, Dialogs, //HTML fpWebNewHTMLFileUnit, fpWebStrConsts, fpWebNewHtmlTableUnit, fpwebNewHTMLListUnit, fpwebNewHtmlTagTRUnit, fpwebNewHTMLFormUnit, fpwebNewHTMLInputUnit, fpwebNewHTMLImgUnit, fpWebNewHtmlTagPreUnit, fpWebHREFEditUnit, fpWebSelectOptionsUnit, fpWebSelectTagUnit, fpWebHtmlTagLegendUnit, fpWebFieldSetTagUnit, fpwebNewHtmlTagTDUnit, //Other fpIDEExtEditorInsertFileNameUnit; var //Standart items CmdHTMLBold : TIDECommand; CmdHTMLItalic : TIDECommand; CmdHTMLUnderline : TIDECommand; //---- CmdHTMLBR : TIDECommand; //Paragraph CmdHTMLNBSP : TIDECommand; //---- CmdHTMLLink : TIDECommand ; CmdHTMLIMG : TIDECommand; CmdHTMLHR : TIDECommand; CmdHTMLComment : TIDECommand; //---- CmdHTMLTextAlignLeft : TIDECommand; CmdHTMLTextAlignRight : TIDECommand; CmdHTMLTextAlignCenter : TIDECommand; CmdHTMLTextAlignJustify : TIDECommand; //Span text CmdHTMLTable : TIDECommand; CmdHTMLList : TIDECommand; CmdHTMLTableRow : TIDECommand; CmdHTMLTableData : TIDECommand; CmdHTMLTableRowWD : TIDECommand; CmdHTMLTableDataWD : TIDECommand; //Styles CmdHTMLDIVBlock : TIDECommand; CmdHTMLSpanText : TIDECommand; CmdHTMLPre : TIDECommand; CmdHTMLSub : TIDECommand; CmdHTMLSuper : TIDECommand; CmdHTMLColor : TIDECommand; CmdHTMLTextStyleH1 : TIDECommand; CmdHTMLTextStyleH2 : TIDECommand; CmdHTMLTextStyleH3 : TIDECommand; CmdHTMLTextStyleH4 : TIDECommand; CmdHTMLTextStyleH5 : TIDECommand; CmdHTMLFrom : TIDECommand; CmdHTMLFormSelect : TIDECommand; CmdHTMLFormSelectOpt : TIDECommand; CmdHTMLFormSelectOptWD : TIDECommand; CmdHTMLFormCheckBtn : TIDECommand; CmdHTMLFormRadioBtn : TIDECommand; CmdHTMLFormButton : TIDECommand; CmdHTMLInput : TIDECommand; CmdHTMLInputSubmit : TIDECommand; CmdHTMLInputReset : TIDECommand; CmdHTMLFormFieldSet : TIDECommand; CmdHTMLFormLegend : TIDECommand; CmdOtherInsFileName : TIDECommand; procedure CreateHTMLToolsMenu; var Key: TIDEShortCut; Cat: TIDECommandCategory; mnuHTMLMain : TIDEMenuSection; mnuHTMLSection : TIDEMenuSection; mnuHTMLStandart : TIDEMenuSection; mnuHTMLStyles : TIDEMenuSection; mnuHTMLTables : TIDEMenuSection; mnuHTMLLists : TIDEMenuSection; mnuHTMLForms : TIDEMenuSection; mnuHTMLOther : TIDEMenuSection; begin Key:=IDEShortCut(VK_UNKNOWN,[],VK_UNKNOWN,[]); Cat:=IDECommandList.CreateCategory(nil, 'HTMLEditor', SmiHTMLEditor, IDECmdScopeSrcEditOnly); //-- CmdHTMLBold := RegisterIDECommand(Cat, 'HTMLTable', SmiHTMLTextBold, Key, nil, @ProcHTMLTextBold); CmdHTMLItalic := RegisterIDECommand(Cat, 'HTMLTable', SmiHTMLTextItalic, Key, nil, @ProcHTMLTextItalic); CmdHTMLUnderline := RegisterIDECommand(Cat, 'HTMLTable', SmiHTMLTextUnderline, Key, nil, @ProcHTMLTextUnderline); CmdHTMLBR := RegisterIDECommand(Cat, 'HTMLBR', SmiHTMLInsertBR, Key, nil, @ProcHTMLBR); //Para CmdHTMLNBSP := RegisterIDECommand(Cat, 'HTMLNBSP', SmiHTMLInsertBR, Key, nil, @ProcHTMLNBSP); CmdHTMLHR := RegisterIDECommand(Cat, 'HTMLHR', SmiHTMLInsertHR, Key, nil, @ProcHTMLHR); CmdHTMLComment := RegisterIDECommand(Cat, 'HTMLComment', SmiHTMLInsertComment, Key, nil, @ProcHTMLComment); CmdHTMLIMG := RegisterIDECommand(Cat, 'HTMLIMG', SmiHTMLInsertIMG, Key, nil, @ProcHTMLImageTag); CmdHTMLLink:= RegisterIDECommand(Cat, 'HTMLLink', SmiHTMLInsertLink, Key, nil, @ProcHTMLLink); CmdHTMLTextAlignLeft :=RegisterIDECommand(Cat, 'HTMLTextAlignLeft', SmiHTMLTextAlignLeft, Key, nil, @ProcHTMLTextAlignLeft); CmdHTMLTextAlignRight :=RegisterIDECommand(Cat, 'HTMLTextAlignRight', SmiHTMLTextAlignRight, Key, nil, @ProcHTMLTextAlignRight); CmdHTMLTextAlignCenter :=RegisterIDECommand(Cat, 'HTMLTextAlignCenter', SmiHTMLTextAlignCenter, Key, nil, @ProcHTMLTextAlignCenter); CmdHTMLTextAlignJustify :=RegisterIDECommand(Cat, 'HTMLTextAlignJustify', SmiHTMLTextAlignJustify, Key, nil, @ProcHTMLTextAlignJustify); //-- CmdHTMLTable := RegisterIDECommand(Cat, 'HTMLTable', SmiHTMLInsertTable, Key, nil, @ProcHTMLTable); CmdHTMLList := RegisterIDECommand(Cat, 'HTMLList', SmiHTMLInsertList, Key, nil, @ProcHTMLGenList); CmdHTMLTableRow := RegisterIDECommand(Cat, 'HTMLTableRow', SmiHTMLInsertTableRow, Key, nil, @ProcHTMLTableRow); CmdHTMLTableData := RegisterIDECommand(Cat, 'HTMLTableData', SmiHTMLInsertTableData, Key, nil, @ProcHTMLTableData); CmdHTMLTableRowWD := RegisterIDECommand(Cat, 'HTMLTableRowWD', SmiHTMLInsertTableRowWD, Key, nil, @ProcHTMLTableRowWD); CmdHTMLTableDataWD := RegisterIDECommand(Cat, 'HTMLTableDataWD', SmiHTMLInsertTableDataWD, Key, nil, @ProcHTMLTableDataWD); //Styles CmdHTMLDIVBlock := RegisterIDECommand(Cat, 'HTMLDIVBlock', SmiHTMLInsertDIVBlock, Key, nil, @ProcHTMLDIVBlock); CmdHTMLSpanText := RegisterIDECommand(Cat, 'HTMLSpanText', SmiHTMLInsertSpanText, Key, nil, @ProcHTMLSpanText); CmdHTMLPre := RegisterIDECommand(Cat, 'HTMLPre', SmiHTMLInsertPre, Key, nil, @ProcHTMLPre); CmdHTMLSub := RegisterIDECommand(Cat, 'HTMLSub', SmiHTMLInsertSub, Key, nil, @ProcHTMLSub); CmdHTMLSuper := RegisterIDECommand(Cat, 'HTMLSuper', SmiHTMLInsertSuper, Key, nil, @ProcHTMLSuper); CmdHTMLColor := RegisterIDECommand(Cat, 'HTMLColor', SmiHTMLInsertColor, Key, nil, @ProcHTMLColor); CmdHTMLTextStyleH1 := RegisterIDECommand(Cat, 'HTMLTextStyleH1', SmiHTMLInsertHeader1Level, Key, nil, @ProcHTMLTextHeader1); CmdHTMLTextStyleH2 := RegisterIDECommand(Cat, 'HTMLTextStyleH2', SmiHTMLInsertHeader2Level, Key, nil, @ProcHTMLTextHeader2); CmdHTMLTextStyleH3 := RegisterIDECommand(Cat, 'HTMLTextStyleH3', SmiHTMLInsertHeader3Level, Key, nil, @ProcHTMLTextHeader3); CmdHTMLTextStyleH4 := RegisterIDECommand(Cat, 'HTMLTextStyleH4', SmiHTMLInsertHeader4Level, Key, nil, @ProcHTMLTextHeader4); CmdHTMLTextStyleH5 := RegisterIDECommand(Cat, 'HTMLTextStyleH5', SmiHTMLInsertHeader5Level, Key, nil, @ProcHTMLTextHeader5); //Forms--- CmdHTMLFrom := RegisterIDECommand(Cat, 'HTMLForm', SmiHTMLInsertForm, Key, nil, @ProcHTMLForm); CmdHTMLFormSelect := RegisterIDECommand(Cat, 'HTMLFormSelect', SmiHTMLFormSelect, Key, nil, @ProcHTMLSelect); CmdHTMLFormSelectOpt := RegisterIDECommand(Cat, 'HTMLFormSelectOpt', SmiHTMLFormSelectOpt, Key, nil, @ProcHTMLSelectOptionsWD); CmdHTMLFormSelectOptWD := RegisterIDECommand(Cat, 'HTMLFormSelectOptWD', SmiHTMLFormSelectOptWD, Key, nil, @ProcHTMLSelectOptions); CmdHTMLFormCheckBtn := RegisterIDECommand(Cat, 'HTMLFormCheckBtn', SmiHTMLFormCheckBox, Key, nil, @ProcHTMLCheckButton); CmdHTMLFormRadioBtn := RegisterIDECommand(Cat, 'HTMLFormRadioBtn', SmiHTMLFormRadioBtn, Key, nil, @ProcHTMLRadioButton); CmdHTMLFormButton := RegisterIDECommand(Cat, 'HTMLFormButton', SmiHTMLFormButtton, Key, nil, @ProcHTMLButton); CmdHTMLInput := RegisterIDECommand(Cat, 'HTMLInput', SmiHTMLInsertInput, Key, nil, @ProcHTMLInputTag); CmdHTMLInputSubmit := RegisterIDECommand(Cat, 'HTMLInputSubmit', SmiHTMLInsertInputSubmit, Key, nil, @ProcHTMLInputSubmitTag); CmdHTMLInputReset := RegisterIDECommand(Cat, 'HTMLInputReset', SmiHTMLInsertInputReset, Key, nil, @ProcHTMLInputResetTag); CmdHTMLFormFieldSet := RegisterIDECommand(Cat, 'HTMLFormFieldSet', SmiHTMLFormFieldSet, Key, nil, @ProcHTMLFormFieldSet); CmdHTMLFormLegend := RegisterIDECommand(Cat, 'HTMLFormLegend', SmiHTMLFormLegend, Key, nil, @ProcHTMLFormLegend); CmdHTMLFrom := RegisterIDECommand(Cat, 'HTMLForm', SmiHTMLInsertForm, Key, nil, @ProcHTMLForm); CmdHTMLInput:= RegisterIDECommand(Cat, 'HTMLInput', SmiHTMLInsertInput, Key, nil, @ProcHTMLInputTag); CmdHTMLInputSubmit := RegisterIDECommand(Cat, 'HTMLInputSubmit', SmiHTMLInsertInputSubmit, Key, nil, @ProcHTMLInputSubmitTag); CmdHTMLInputReset := RegisterIDECommand(Cat, 'HTMLInputReset', SmiHTMLInsertInputReset, Key, nil, @ProcHTMLInputResetTag); CmdOtherInsFileName:=RegisterIDECommand(Cat, 'OtherInsFN', SmiOtherInsertFN, Key, nil, @ProcOtherInsertFileName); // mnuHTMLMain := RegisterIDEMenuRoot('HTML');//RegisterIDEMenuSection(itmCustomTools, 'HTMLEditor'); mnuHTMLMain := RegisterIDEMenuSection(mnuMain, 'HTMLEditor'); mnuHTMLSection:=RegisterIDESubMenu(mnuHTMLMain, 'HTMLEditor', SmiHTMLEditor, nil, nil); mnuHTMLStandart := RegisterIDESubMenu(mnuHTMLSection, 'HTMLStandart', SmiHTMLStandart, nil, nil); RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLBold', SmiHTMLTextBold, nil, nil, CmdHTMLBold, 'tag_bold'); RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLItalic', SmiHTMLTextItalic, nil, nil, CmdHTMLItalic, 'tag_i'); RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLUnderline', SmiHTMLTextUnderline, nil, nil, CmdHTMLUnderline, 'tag_u'); RegisterIDEMenuCommand(mnuHTMLStandart, '', '-', nil, nil, nil, ''); RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLBR', SmiHTMLInsertBR, nil, nil, CmdHTMLBR, 'tag_br'); //Paragraph RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLNBSP', SmiHTMLInsertNBSP, nil, nil, CmdHTMLNBSP, 'tag_nbsp'); RegisterIDEMenuCommand(mnuHTMLStandart, '', '-', nil, nil, nil, ''); RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLLink', SmiHTMLInsertLink, nil, nil, CmdHTMLLink, 'tag_a'); RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLIMG', SmiHTMLInsertIMG, nil, nil, CmdHTMLIMG, 'tag_image'); RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLHR', SmiHTMLInsertHR, nil, nil, CmdHTMLHR, 'tag_hr'); RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLComment', SmiHTMLInsertComment, nil, nil, CmdHTMLComment, 'tag_comm'); RegisterIDEMenuCommand(mnuHTMLStandart, '', '-', nil, nil, nil, ''); //-- RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLTextAlignLeft', SmiHTMLTextAlignLeft, nil, nil, CmdHTMLTextAlignLeft, 'div_left'); RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLTextAlignRight', SmiHTMLTextAlignRight, nil, nil, CmdHTMLTextAlignRight, 'div_right'); RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLTextAlignCenter', SmiHTMLTextAlignCenter, nil, nil, CmdHTMLTextAlignCenter, 'div_center'); RegisterIDEMenuCommand(mnuHTMLStandart, 'HTMLTextAlignJustify', SmiHTMLTextAlignJustify, nil, nil, CmdHTMLTextAlignJustify, 'div_justify'); //Span text //List's mnuHTMLLists := RegisterIDESubMenu(mnuHTMLSection, 'HTMLLists', SmiHTMLLists, nil, nil); RegisterIDEMenuCommand(mnuHTMLLists, 'HTMLList', SmiHTMLInsertList, nil, nil, CmdHTMLList, 'HTMLList'); //Style's mnuHTMLStyles :=RegisterIDESubMenu(mnuHTMLSection, 'HTMLStyle', SmiHTMLStyle, nil, nil); RegisterIDEMenuCommand(mnuHTMLStyles, 'HTMLDIVBlock', SmiHTMLInsertDIVBlock, nil, nil, CmdHTMLDIVBlock, 'div_justify'); RegisterIDEMenuCommand(mnuHTMLStyles, 'HTMLSpanText', SmiHTMLInsertSpanText, nil, nil, CmdHTMLSpanText, 'tag_font'); RegisterIDEMenuCommand(mnuHTMLStyles, '', '-', nil, nil, nil, ''); RegisterIDEMenuCommand(mnuHTMLStyles, 'HTMLPre', SmiHTMLInsertPre, nil, nil, CmdHTMLPre, 'tag_pre'); RegisterIDEMenuCommand(mnuHTMLStyles, 'HTMLSub', SmiHTMLInsertSub, nil, nil, CmdHTMLSub, 'tag_sub'); RegisterIDEMenuCommand(mnuHTMLStyles, 'HTMLSuper', SmiHTMLInsertSuper, nil, nil, CmdHTMLSuper, 'tag_sup'); RegisterIDEMenuCommand(mnuHTMLStyles, 'HTMLColor', SmiHTMLInsertColor, nil, nil, CmdHTMLColor, 'color-picker'); RegisterIDEMenuCommand(mnuHTMLStyles, '', '-', nil, nil, nil, ''); RegisterIDEMenuCommand(mnuHTMLStyles, 'HTMLTextHeader1', SmiHTMLInsertHeader1Level, nil, nil, CmdHTMLTextStyleH1, 'tag_h1'); RegisterIDEMenuCommand(mnuHTMLStyles, 'HTMLTextHeader2', SmiHTMLInsertHeader2Level, nil, nil, CmdHTMLTextStyleH2, 'tag_h2'); RegisterIDEMenuCommand(mnuHTMLStyles, 'HTMLTextHeader3', SmiHTMLInsertHeader3Level, nil, nil, CmdHTMLTextStyleH3, 'tag_h3'); RegisterIDEMenuCommand(mnuHTMLStyles, 'HTMLTextHeader4', SmiHTMLInsertHeader4Level, nil, nil, CmdHTMLTextStyleH4, 'tag_h4'); RegisterIDEMenuCommand(mnuHTMLStyles, 'HTMLTextHeader5', SmiHTMLInsertHeader5Level, nil, nil, CmdHTMLTextStyleH5, 'tag_h5'); //Table menus mnuHTMLTables := RegisterIDESubMenu(mnuHTMLSection, 'HTMLTables', SmiHTMLTables, nil, nil); RegisterIDEMenuCommand(mnuHTMLTables, 'HTMLTable', SmiHTMLInsertTable, nil, nil, CmdHTMLTable, 'quick_table'); RegisterIDEMenuCommand(mnuHTMLTables, 'HTMLTableRow', SmiHTMLInsertTableRow, nil, nil, CmdHTMLTableRow, 'tag_tr'); RegisterIDEMenuCommand(mnuHTMLTables, 'HTMLTableData', SmiHTMLInsertTableData, nil, nil, CmdHTMLTableData, 'tag_td'); RegisterIDEMenuCommand(mnuHTMLTables, 'HTMLTableRowWD', SmiHTMLInsertTableRowWD, nil, nil, CmdHTMLTableRowWD, 'tag_table_row'); RegisterIDEMenuCommand(mnuHTMLTables, 'HTMLTableDataWD', SmiHTMLInsertTableDataWD, nil, nil, CmdHTMLTableDataWD, 'tag_table_data'); //Forms menu mnuHTMLForms := RegisterIDESubMenu(mnuHTMLSection, 'HTMLForms', SmiHTMLForms, nil, nil); RegisterIDEMenuCommand(mnuHTMLForms, 'HTMLForm', SmiHTMLInsertForm, nil, nil, CmdHTMLFrom, 'HTMLForm'); RegisterIDEMenuCommand(mnuHTMLForms, '', '-', nil, nil, nil, ''); RegisterIDEMenuCommand(mnuHTMLForms, 'HTMLFormSelect', SmiHTMLFormSelect, nil, nil, CmdHTMLFormSelect, 'select'); RegisterIDEMenuCommand(mnuHTMLForms, 'HTMLFormSelectOpt', SmiHTMLFormSelectOpt, nil, nil, CmdHTMLFormSelectOpt, 'tag_li'); RegisterIDEMenuCommand(mnuHTMLForms, 'HTMLFormSelectOptWD', SmiHTMLFormSelectOptWD, nil, nil, CmdHTMLFormSelectOptWD, 'tag_li'); RegisterIDEMenuCommand(mnuHTMLForms, 'HTMLFormCheckBtn', SmiHTMLFormCheckBox, nil, nil, CmdHTMLFormCheckBtn, 'check'); RegisterIDEMenuCommand(mnuHTMLForms, 'HTMLFormRadioBtn', SmiHTMLFormRadioBtn, nil, nil, CmdHTMLFormRadioBtn, 'radio'); RegisterIDEMenuCommand(mnuHTMLForms, 'HTMLFormButton', SmiHTMLFormButtton, nil, nil, CmdHTMLFormButton, 'button'); RegisterIDEMenuCommand(mnuHTMLForms, '', '-', nil, nil, nil, ''); RegisterIDEMenuCommand(mnuHTMLForms, 'HTMLInput', SmiHTMLInsertInput, nil, nil, CmdHTMLInput, 'lineedit'); RegisterIDEMenuCommand(mnuHTMLForms, 'HTMLInputSubmit', SmiHTMLInsertInputSubmit, nil, nil, CmdHTMLInputSubmit, 'submit'); RegisterIDEMenuCommand(mnuHTMLForms, 'HTMLInputReset', SmiHTMLInsertInputReset, nil, nil, CmdHTMLInputReset, 'reset'); RegisterIDEMenuCommand(mnuHTMLForms, '', '-', nil, nil, nil, ''); RegisterIDEMenuCommand(mnuHTMLForms, 'HTMLFormFieldSet', SmiHTMLFormFieldSet, nil, nil, CmdHTMLFormFieldSet, 'tag_element'); RegisterIDEMenuCommand(mnuHTMLForms, 'HTMLFormLegend', SmiHTMLFormLegend, nil, nil, CmdHTMLFormLegend, 'tag_attribute'); //Other tools mnuHTMLOther :=RegisterIDESubMenu(mnuHTMLSection, 'HTMLOther', SmiHTMLOther, nil, nil); RegisterIDEMenuCommand(mnuHTMLOther, 'OtherInsFN', SmiOtherInsertFN, nil, nil, CmdOtherInsFileName, ''); end; procedure Register; begin RegisterNewItemCategory(TNewIDEItemCategory.Create(SHtmlDesign)); RegisterProjectFileDescriptor(THtmlFileDescriptor.Create, SHtmlDesign); RegisterProjectFileDescriptor(TJSFileDescriptor.Create, SHtmlDesign); RegisterProjectFileDescriptor(TCSSFileDescriptor.Create, SHtmlDesign); CreateHTMLToolsMenu; end; Procedure InsertHTMLSnippet(Const AText : String); begin if Assigned(SourceEditorManagerIntf) and Assigned(SourceEditorManagerIntf.ActiveEditor) then With SourceEditorManagerIntf.ActiveEditor do Selection:=AText; end; Function CheckEditor : Boolean; begin Result:=Assigned(SourceEditorManagerIntf) and Assigned(SourceEditorManagerIntf.ActiveEditor); end; Procedure InsertHTMLTag(Const ATag : String; Const AAttribute : String = ''); begin If CheckEditor then With SourceEditorManagerIntf.ActiveEditor do if (AAttribute='') then Selection:='<'+ATag+'>'+Selection+''+ATag+'>' else Selection:='<'+ATag+' '+AAttribute+' >'+Selection+''+ATag+'>'; end; function ShowEditInputTagForm(const ATagType:string; const ADefValue:string = ''):string; begin If Not CheckEditor then Exit; With TFpwebNewHTMLInputForm.Create(Application) do try cbType.Text:=ATagType; if ADefValue<>'' then edtValue.Text:=ADefValue else edtValue.Text:=SourceEditorManagerIntf.ActiveEditor.Selection; if ShowModal = mrOk then InsertHTMLSnippet(HtmlText); finally Free; end; end; procedure ProcHTMLTableRow(Sender: TObject); begin InsertHTMLTag('tr'); end; procedure ProcHTMLTableData(Sender: TObject); begin InsertHTMLTag('td'); end; procedure ProcHTMLTextHeader1(Sender: TObject); begin InsertHTMLTag('H1'); end; procedure ProcHTMLTextHeader2(Sender: TObject); begin InsertHTMLTag('H2'); end; procedure ProcHTMLTextHeader3(Sender: TObject); begin InsertHTMLTag('H3'); end; procedure ProcHTMLTextHeader4(Sender: TObject); begin InsertHTMLTag('H4'); end; procedure ProcHTMLTextHeader5(Sender: TObject); begin InsertHTMLTag('H5'); end; procedure ProcHTMLTextBold(Sender: TObject); begin InsertHTMLTag('strong'); end; procedure ProcHTMLTextItalic(Sender: TObject); begin InsertHTMLTag('em'); end; procedure ProcHTMLTextUnderline(Sender: TObject); begin InsertHTMLTag('u'); end; procedure ProcHTMLHR(Sender: TObject); begin InsertHTMLSnippet('