[haiku-webkit-commits] r457 - webkit/trunk/WebKit/haiku/WebPositive/support

  • From: webkit@xxxxxxxxxxxxxxx
  • To: haiku-webkit-commits@xxxxxxxxxxxxx
  • Date: Fri, 23 Apr 2010 16:07:22 +0000

Author: stippi
Date: Fri Apr 23 16:07:22 2010
New Revision: 457
URL: http://mmlr.dyndns.org/changeset/457

Log:
Allow setting a listener target and a modification message.

Modified:
   webkit/trunk/WebKit/haiku/WebPositive/support/FontSelectionView.cpp
   webkit/trunk/WebKit/haiku/WebPositive/support/FontSelectionView.h

Modified: webkit/trunk/WebKit/haiku/WebPositive/support/FontSelectionView.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/WebPositive/support/FontSelectionView.cpp Fri Apr 
23 15:07:53 2010        (r456)
+++ webkit/trunk/WebKit/haiku/WebPositive/support/FontSelectionView.cpp Fri Apr 
23 16:07:22 2010        (r457)
@@ -15,6 +15,7 @@
 #include <Box.h>
 #include <Catalog.h>
 #include <Locale.h>
+#include <Looper.h>
 #include <MenuField.h>
 #include <MenuItem.h>
 #include <PopUpMenu.h>
@@ -43,7 +44,9 @@
 FontSelectionView::FontSelectionView(const char* name, const char* label,
                bool separateStyles, const BFont* currentFont)
        :
-       BHandler(name)
+       BHandler(name),
+       fMessage(NULL),
+       fTarget(NULL)
 {
        if (currentFont == NULL)
                fCurrentFont = _DefaultFont();
@@ -96,6 +99,8 @@
                delete fStylesMenuField;
        if (!fFontsMenuField->Window())
                delete fFontsMenuField;
+
+       delete fMessage;
 }
 
 
@@ -120,6 +125,7 @@
 
                        fCurrentFont.SetSize(size);
                        _UpdateFontPreview();
+                       _Invoke();
                        break;
                }
 
@@ -153,6 +159,8 @@
                                if (fStylesMenuField != NULL)
                                        _AddStylesToMenu(fCurrentFont, 
fStylesMenuField->Menu());
                        }
+
+                       _Invoke();
                        break;
                }
 
@@ -173,6 +181,7 @@
 
                        fCurrentFont.SetFamilyAndStyle(family, style);
                        _UpdateFontPreview();
+                       _Invoke();
                        break;
                }
 
@@ -182,6 +191,21 @@
 }
 
 
+void
+FontSelectionView::SetMessage(BMessage* message)
+{
+       delete fMessage;
+       fMessage = message;
+}
+
+
+void
+FontSelectionView::SetTarget(BHandler* target)
+{
+       fTarget = target;
+}
+
+
 // #pragma mark -
 
 
@@ -379,6 +403,16 @@
 // #pragma mark - private
 
 
+void
+FontSelectionView::_Invoke()
+{
+       if (fTarget != NULL && fTarget->Looper() != NULL && fMessage != NULL) {
+               BMessage message(*fMessage);
+               fTarget->Looper()->PostMessage(&message, fTarget);
+       }
+}
+
+
 BFont
 FontSelectionView::_DefaultFont() const
 {

Modified: webkit/trunk/WebKit/haiku/WebPositive/support/FontSelectionView.h
==============================================================================
--- webkit/trunk/WebKit/haiku/WebPositive/support/FontSelectionView.h   Fri Apr 
23 15:07:53 2010        (r456)
+++ webkit/trunk/WebKit/haiku/WebPositive/support/FontSelectionView.h   Fri Apr 
23 16:07:22 2010        (r457)
@@ -35,6 +35,9 @@
                        void                            AttachedToLooper();
        virtual void                            MessageReceived(BMessage* 
message);
 
+                       void                            SetMessage(BMessage* 
message);
+                       void                            SetTarget(BHandler* 
target);
+
                        void                            SetFont(const BFont& 
font, float size);
                        void                            SetFont(const BFont& 
font);
                        void                            SetSize(float size);
@@ -59,6 +62,8 @@
                        BView*                          PreviewBox() const;
                        
 private:
+                       void                            _Invoke();
+
                        BFont                           _DefaultFont() const;
                        void                            _SelectCurrentFont(bool 
select);
                        void                            _SelectCurrentSize(bool 
select);
@@ -78,6 +83,9 @@
 
                        BFont                           fSavedFont;
                        BFont                           fCurrentFont;
+
+                       BMessage*                       fMessage;
+                       BHandler*                       fTarget;
 };
 
 #endif // FONT_SELECTION_VIEW_H

Other related posts:

  • » [haiku-webkit-commits] r457 - webkit/trunk/WebKit/haiku/WebPositive/support - webkit