Page 1 of 1

Language File Editor

Posted: Tue Jul 29, 2003 9:49 am
by Inner
Add, Remove, Replace .. and written entirely in 15mins.

Code: Select all

;-----------------------------------------------------------------------------
;#############################################################################
;#                                                                           #
;# Title: Language_Editor.pb                                                 #
;# Author: T.J.Rougtoon                                                      #
;#                                                                           #
;# Copyright Roughton Design 2003 (c)                                        #
;#                                                                           #
;#############################################################################
;-----------------------------------------------------------------------------
#LANGUAGE_WINDOW = 0

#GAD_FRAME0 = 0
#GAD_FRAME1 = 1
#GAD_FRAME2 = 2
#GAD_LANGLIST = 3
#GAD_SAVEAS = 4
#GAD_OPEN = 5
#GAD_VALUE = 6
#GAD_IDX = 7
#GAD_ADD = 8
#GAD_DELETE = 9
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
Procedure Open_LanguageWindow()
  If OpenWindow(#LANGUAGE_WINDOW, 327, 153, 364, 437, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
    FrameGadget(#GAD_FRAME0, 0, 5, 365, 355, "Language Content")
    FrameGadget(#GAD_FRAME1, 0, 365, 70, 45, "Index ID")
    FrameGadget(#GAD_FRAME2, 75, 365, 205, 45, "Value")
    ListIconGadget(#GAD_LANGLIST, 10, 25, 345, 325,"Index",45,#PB_ListIcon_FullRowSelect)
    AddGadgetColumn(#GAD_LANGLIST,1,"Value",256)   
    ButtonGadget(#GAD_SAVEAS, 285, 390, 75, 20, "Save As...")
    ButtonGadget(#GAD_OPEN, 285, 365, 75, 20, "Open")
    ButtonGadget(#GAD_ADD, 155, 415, 100, 20, "Add")
    ButtonGadget(#GAD_DELETE, 260, 415, 100, 20, "Delete")
    StringGadget(#GAD_VALUE, 80, 385, 195, 20, "")
    SpinGadget(#GAD_IDX, 5, 385, 55, 20, 0, 1000)
    SetGadgetState (#GAD_IDX,0) : SetGadgetText(#GAD_IDX,"0")   ; set initial value 
  EndIf
EndProcedure

Open_LanguageWindow()

Repeat
  EventID=WaitWindowEvent()
  Select EventID
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #GAD_ADD
          RemoveGadgetItem(#GAD_LANGLIST,GetGadgetState(#GAD_IDX))
          idx.s=Str(GetGadgetState(#GAD_IDX))
          value.s=GetGadgetText(#GAD_VALUE)
          AddGadgetItem(#GAD_LANGLIST,GetGadgetState(#GAD_IDX),idx+Chr(10)+value)
        Case #GAD_DELETE
          For i=0 To CountGadgetItems(#GAD_LANGLIST)
            If(GetGadgetItemState(#GAD_LANGLIST,i)=1)
              RemoveGadgetItem(#GAD_LANGLIST,i)
            EndIf
          Next
        Case #GAD_OPEN
          filename.s=OpenFileRequester("Open Language File","","Language File|*.lang",0)
          If(filename<>"")
            If(OpenFile(0,filename)<>0)
              langh.s=Space(4)
              ReadData(0, @langh, 4)
              If(langh="LANG")
                items = ReadWord(0)
                For i=0 To items
                  open_idx=ReadWord(0)
                  value_len=ReadWord(0)
                  valuebuf.s=Space(value_len)
                  ReadData(0, @valuebuf,value_len)
                  AddGadgetItem(#GAD_LANGLIST,i,Str(open_idx)+Chr(10)+valuebuf)
                Next
              Else
                MessageRequester("Error","What are you trying to do to me?"+Chr(10)+"this ain't no language file!!!",#PB_MessageRequester_Ok)
              EndIf
              CloseFile(0)
            EndIf   
          EndIf
        Case #GAD_SAVEAS
          filename.s=SaveFileRequester("Save Language File","","Language File|*.lang",0)
          If(filename<>"")
            If(CreateFile(0,filename)<>0)
              WriteString(0, "LANG")
              WriteWord(0, CountGadgetItems(#GAD_LANGLIST)-1)                       
              For i=0 To CountGadgetItems(#GAD_LANGLIST)-1
                save_idx.s=GetGadgetItemText(#GAD_LANGLIST,i,0) 
                save_value.s=GetGadgetItemText(#GAD_LANGLIST,i,1) 
                WriteWord(0, Val(save_idx))
                WriteWord(0, Len(save_value))
                WriteString(0, save_value)
              Next
              CloseFile(0)
            EndIf
          EndIf
        Default
          SetGadgetText(#GAD_IDX,Str(GetGadgetState(#GAD_IDX)))
      EndSelect
  EndSelect
Until EventID=#PB_Event_CloseWindow