Add Buttons

[Top]  [Chapter]  [Previous]  [Next]

Now we add some addtional buttons to the toolbar to set the fonts styles, such as bold, italic.




Into property "Text" for each of this new buttons we enter the name of the wpaAction we intend to execute. For this buttons above this are: bold, italic, underline, left, center, justified, right.


Using the following method we can retrieve the action ID for each of the action names:


  Dim UpdateLanguage As Boolean = True


  Private Sub InitToolbar()

      Dim i, id As Integer

      Dim aName, aCaption, aHint As String

      Dim SelState As Byte()

      Dim tb As ToolStripButton

      If Not WpdllInt1 Is Nothing Then

          SelState = WpdllInt1.wpaGetFlags(0)

          For i = 0 To ToolStrip.Items.Count - 1

               tb = TryCast(ToolStrip.Items(i), ToolStripButton)

              If Not tb Is Nothing Then

                  ' Set TAG if still undefined

                  If tb.Tag = 0 Then

                      id = WpdllInt1.wpaGetID(tb.Text)

                      If id >= 0 Then

                           tb.Tag = id + 1 ' add one !


                           tb.Tag = -1 ' this is not a wpaAction!

                      End If


                  End If

                  ' Update if an action

                  If tb.Tag > 0 Then

                      ' Update Captions

                      If UpdateLanguage Then

                          If WpdllInt1.Memo.wpaGetCaption(ToolStrip.Items(i).Tag - 1, aName, aCaption, aHint) Then

                               tb.Text = aCaption

                               tb.ToolTipText = aHint

                          End If

                      End If

                      ' Update Selected and disabled state

                       tb.Enabled = (SelState(tb.Tag - 1) And 1) <> 0

                      tb.Checked = (SelState(tb.Tag - 1) And 2) <> 0

                  End If

              End If


           UpdateLanguage = False ' Update only the first time!

      End If

  End Sub


This code basically loops all elements in the toolbar and checks the caption of each element if it is a wpaAction or not. If it is an action it updates sets "Tag" = id+1. Then it updates the Text and the states. After this method has been called, the Tag property should bei either -1 or the wpa action ID. This method can be executed again to update the checked and enabled states so we add a "InitToolbar()" at the end of ReadCurrentAttributes!


Now we create one new event for the new buttons (we select the buttons and add the event for all!)


  ' OnClick for all buttons which represent wpaActions

  Private Sub AllButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs)

         Handles ToolStripButton7.Click ....

      Dim tb As ToolStripButton

      If Not WpdllInt1 Is Nothing Then

           tb = DirectCast(sender, ToolStripButton)

          If tb.Tag >= 0 Then

              If tb.Checked Then

                   WpdllInt1.wpaExec(tb.Tag - 1, "0")


                   WpdllInt1.wpaExec(tb.Tag - 1, "1")

              End If

          End If


      End If

  End Sub





[updatestatusbar2.htm]    Copyright © 2007 by WPCubed GmbH