home *** CD-ROM | disk | FTP | other *** search
/ com!online 2001 December / COMCD1201.iso / openoffice / f_0031 / DlgControl.xba < prev    next >
Encoding:
Extensible Markup Language  |  2001-07-20  |  7.4 KB  |  255 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
  3. <script:module xmlns:script="http://openoffice.org/2000/script" script:name="DlgControl" script:language="StarBasic">Option Explicit
  4.  
  5. Dim CalBitmap As Object
  6. Public bDoSelect as Boolean
  7.  
  8. ' Todo: Adjustmentlistener an der Scrollbar anmelden
  9.  
  10. Sub Main()
  11.     Call CalAutopilotTable()
  12. End Sub
  13.  
  14.  
  15. Sub CalSaveTextValues()
  16.     txtYear.Tag = txtYear.Text
  17.     txtMonth.Tag = txtMonth.Text
  18. End Sub
  19.  
  20.  
  21. Sub CalRestoreOldValues()
  22.     Beep
  23.     ' Start of the Gregorian Calendar
  24.     If int(Val(txtyear.Text)) < 1583 then
  25.         txtYear.Text = "1583"
  26.     Else
  27.         ' last year where the easter Routin works
  28.         txtYear.Text = "9956"
  29.     End If
  30.     txtMonth.Text = txtMonth.Tag
  31. End Sub
  32.  
  33.  
  34.  
  35. Sub CalChangeYear()
  36.     Dim ValNewYear&
  37.     ValNewYear& = Val(txtYear.Text)
  38.     If ((1583 > ValNewYear&) Or (9956 < ValNewYear&)) Then
  39.         Call CalRestoreOldValues()
  40.     End If          
  41. End Sub
  42.  
  43.  
  44.  
  45. Sub CalcmdDeleteSelect()
  46. Dim MsgBoxResult as Integer
  47.     If Ubound(DlgCalModel.lstOwnData.SelectedItems()) > -1 Then
  48.         MsgBoxResult = MsgBox(cCalSubcmdDeleteSelect_DeleteSelEntry$, 4+32, cCalSubcmdDeleteSelect_DeleteSelEntryTitle$)
  49.         If MsgBoxResult = 6 Then
  50.             DlgCalModel.lstOwnData.StringItemList() = RemoveSelected(DlgCalModel.lstOwnData)
  51.             ' Flag zum Speichern der neuen Daten.
  52.             bCalOwnDataChanged = True
  53.             DlgCalModel.cmdDelete.Enabled = Ubound(DlgCalModel.lstOwnData.StringItemList()) > -1
  54.             Call CalClearInputMask()
  55.         End If
  56.     End If
  57. End Sub
  58.  
  59.  
  60. Sub CalSaveOwnEventControls()
  61.     With DlgCalModel
  62.         .txtOwnEventDay.Tag = .txtOwnEventDay.Text
  63.         .txtOwnEventMonth.Tag = .txtOwnEventMonth.Text
  64.         .DlgCalModel.txtOwnEventYear.Tag = .DlgCalModel.txtOwnEventYear.Text
  65.     End With
  66. End Sub
  67.  
  68.  
  69.  
  70. Sub ModIntTextBox (txtYear As Object, ByVal nMax%, ByVal nMin%, ByVal sDefault$, IncFactor as Integer)
  71.     Dim nActVal&
  72.     nActVal& = Val(txtYear.Text)
  73.     If ((0 = nActVal&) Or (nMax% < nActVal&) Or (nMin% > nActVal&)) Then 
  74.         Beep
  75.         txtYear.Text = sDefault$
  76.         Exit Sub
  77.     End If
  78.     If IncFactor = 1 Then
  79.         If nMax% > nActVal& Then
  80.             txtYear.Text = Trim(Str(nActVal& + 1))
  81.         Else
  82.             Beep
  83.             txtYear.Text = nMax%
  84.         End if
  85.     ElseIf IncFactor = -1 Then
  86.         If nMin% < nActVal& Then
  87.             txtYear.Text = Trim(Str(nActVal& - 1))
  88.         Else
  89.             Beep
  90.             txtYear.Text = nMin%
  91.         End if
  92.     End If
  93. End Sub
  94.  
  95.  
  96.  
  97. Sub ToggleYearBox()
  98. ' Falls der RadioButton f├╝r einen Jahreskalender angeklickt
  99. ' worden ist, m├╝ssen die Controls f├╝r den Monat Disabled
  100. ' werden, da ihre Werte in einer Jahrestabelle aufgehen.
  101.     With DlgCalModel
  102.         .txtOwnEventYear.Enabled  = .chkEventOnce.State = 1
  103.         .lblEventYear.Enabled  = .chkEventOnce.State = 1
  104.         If .txtOwnEventYear.Text = "" And .lblEventYear.Enabled Then
  105.             .txtOwnEventYear.Text = Trim$(Str$(Year(Now())))
  106.         End If
  107.     End With
  108. End Sub
  109.  
  110.  
  111. Sub CalMouseMoved(aEvent as object)
  112. Dim ListIndex as Integer
  113.     oStatusline.SetText(aEvent.ClickCount)
  114. '    If aEvent.ClickCount = 2 Then
  115. '        oStatusLine.SetText("Click")
  116. '        bDoSelect = False
  117. '    Else
  118. '        oStatusLine.SetText("")
  119. '    End If
  120.     '       Nimmt Mousemoves ueber dem Bitmap entgegen, und wertet sie je nach
  121.     '       Land aus.
  122.     Select Case sCurLangLocale
  123.         Case  cLANGUAGE_GERMAN
  124.         ' Ermittelt das Land auf dem sich der MausCursor befindet, und aktualisiert
  125.         ' die Textbox mit der Bundeslandbezeichnung, falls ein Mausklick stattfandt.
  126. '            If bDoSelect Then 
  127.                 ListIndex = CalGetGermanLandAtMousePos(aEvent.X, aEvent.Y, Land$)
  128.                 DlgCalendar.GetControl("lstHolidays").SelectItemPos(ListIndex, True)
  129.                 If aEvent.ClickCount = 2 Then
  130.                     bDoSelect = False
  131.                 End If
  132. '            End If
  133.     End Select
  134.     
  135.     LastMousePosX = aEvent.X
  136.     LastMousePosY = aEvent.Y
  137. End Sub
  138.  
  139.  
  140. Sub CalChangeGeneralMonth()
  141.  
  142.     Dim MonthToCheck$
  143.     Dim ValMonthToCheck%
  144.  
  145.     MonthToCheck$ = DlgCalModel.txtMonth.Text
  146.     ValMonthToCheck% = Val(MonthToCheck$)
  147.  
  148.     If (ValMonthToCheck% >= 1) And (ValMonthToCheck% <=12) Then
  149.         DlgCalModel.txtMonth.Text = cCalShortMonthNames$(ValMonthToCheck%)
  150.         Exit Sub
  151.     End If
  152.  
  153.     If CalGetIntOfShortMonthName%(Trim(Left(MonthToCheck$, 3))) = 0 Then
  154.         Beep
  155.         DlgCalModel.txtMonth.Text = DlgCalModel.txtMonth.Tag
  156.     Else
  157.         DlgCalModel.txtMonth.Text = Trim(Left(MonthToCheck, 3))
  158.     End If
  159.  
  160. End Sub
  161.  
  162.  
  163.  
  164. Sub CalChkForChangeInsertAccept
  165.     '       Aktualisiert die Label des Insert/Accept Buttons
  166.     If (DataSelectedFromList=True) And (ButtonLabelIsInsert) Then
  167.         DlgCalModel.cmdInsert.Label = cSubChkForChangeInsertAccept_Accpet$
  168.     End If
  169. End Sub
  170.  
  171.  
  172.  
  173. Sub CalClearInputMask()
  174. Dim NullList() as String
  175. '  L├╢scht die Werte der Eingabe Controls f├╝r ein neues Ereignis.
  176.     With DlgCalModel
  177.         .chkEventOnce.State = 0
  178.         .lblEventYear.Enabled = False
  179.         .txtOwnEventYear.Enabled = False
  180. '        SpinOwnEventYear.Enabled = False
  181.         .txtOwnEventYear.Text = ""
  182.         .txtEvent.Text = ""
  183.         .txtOwnEventDay.Text = ""
  184. ' Todo: Wie kriegt man den Focus auf dieses  verdammte Control?        
  185. '        .txtEvent.DefaultButton = True
  186.     End With
  187.     DlgCalModel.lstOwnEventMonth.SelectedItems() = Nulllist()
  188. End Sub
  189.  
  190.  
  191. Sub CalmdSwitchOwnDataOrGeneral()
  192.     '├ändert den Titel der Dialogbox beim Seitenwechsel und die 
  193.     'Beschriftungen der Kn├╢pfe
  194.     If DlgCalModel.Step = 1 Then
  195.         DlgCalModel.Step = 2
  196.         DlgCalModel.cmdOwnData.Label = cCalSubcmdSwitchOwnDataOrGeneral_Back$
  197.         DlgCalModel.cmdInsert.Enabled = DlgCalModel.txtEvent.Text <> ""
  198.         ToggleYearBox()
  199.     Else
  200.         DlgCalModel.Step = 1
  201.         DlgCalModel.cmdOwnData.Label = cCalSubcmdSwitchOwnDataOrGeneral_OwnData$
  202.     End If
  203. End Sub
  204.  
  205.  
  206. Sub ToggleInsertButton()
  207.     DlgCalModel.cmdInsert.Enabled = LTrim(DlgCalModel.txtEvent.Text) <> ""    
  208. End Sub
  209.  
  210.  
  211. Sub CalModMonthTextBox(txtMonth As Object,IncFactor as Integer)
  212.     Dim nActVal&
  213.     nActVal& = Val(txtMonth.Text)
  214.     If (1 <= nActVal& And 12 >= nActVal) Then
  215.         txtMonth.Text = cCalShortMonthNames$(nActVal&)
  216.     End If
  217.     nActVal& = CalGetIntOfShortMonthName%(txtMonth.Text)
  218.     If 0 = nActVal& Then
  219.         Beep
  220.         txtMonth.Text = cCalShortMonthNames$(1)
  221.     ElseIf (1 < nActVal&) AND (IncFactor = -1) Then
  222.         txtMonth.Text = cCalShortMonthNames$(nActVal& + IncFactor)
  223.     ElseIf (12 > nActVal&)AND (IncFactor = 1) Then
  224.         txtMonth.Text = cCalShortMonthNames$(nActVal& + IncFactor)
  225.     End If
  226. End Sub
  227.  
  228.  
  229. Sub CalUpdateNewEventFrame()
  230. Dim bDoEnable as Boolean
  231. Dim sSelectedItem
  232. Dim ListIndex as Integer
  233. Dim MaxSelIndex as Integer
  234.     bDoEnable = False
  235.     With DlgCalModel
  236.         MaxSelIndex = Ubound(DlgCalModel.lstOwnData.SelectedItems())
  237.         If MaxSelIndex > -1 Then
  238.             ListIndex = .lstOwnData.SelectedItems(MaxSelIndex)
  239.             .txtEvent.Text = CalGetNameofEvent(ListIndex)
  240.             .txtOwnEventDay.Text = CalGetDayOfEvent(ListIndex)
  241.             DlgCalendar.GetControl("lstOwnEventMonth").SelectItem(CalGetMonthOfEvent(ListIndex), True)
  242.             .txtOwnEventYear.Text = CalGetYearofEvent(ListIndex)
  243.             bDoEnable = DlgCalModel.txtOwnEventYear.Text = ""
  244.             .chkEventOnce.State = Abs(bDoEnable)
  245.             .lblEventYear.Enabled = bDoEnable
  246.             .txtOwnEventYear.Enabled = bDoEnable
  247.             .cmdDelete.Enabled = True
  248.         Else
  249.             Call CalClearInputMask()
  250.             .cmdDelete.Enabled = False
  251.         End If
  252.     End With
  253. End Sub
  254.  
  255. </script:module>