summaryrefslogtreecommitdiff
path: root/svx/inc/svx/fontlb.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/inc/svx/fontlb.hxx')
-rw-r--r--svx/inc/svx/fontlb.hxx138
1 files changed, 138 insertions, 0 deletions
diff --git a/svx/inc/svx/fontlb.hxx b/svx/inc/svx/fontlb.hxx
new file mode 100644
index 000000000000..813b01ba390f
--- /dev/null
+++ b/svx/inc/svx/fontlb.hxx
@@ -0,0 +1,138 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SVX_FONTLB_HXX
+#define SVX_FONTLB_HXX
+
+#ifndef _SVTABBOX_HXX
+#include <svtools/svtabbx.hxx>
+#endif
+#include <vcl/virdev.hxx>
+#include "svx/svxdllapi.h"
+#include <layout/layout.hxx>
+
+// ============================================================================
+
+/** A list box string item which stores its text and font. */
+class SvLBoxFontString : public SvLBoxString
+{
+private:
+ Font maFont; /// The font used by this item.
+ bool mbUseColor; /// true = use font color, false = default listbox color.
+
+public:
+ SvLBoxFontString();
+ SvLBoxFontString(
+ SvLBoxEntry* pEntry,
+ sal_uInt16 nFlags,
+ const XubString& rString,
+ const Font& rFont,
+ const Color* pColor = NULL );
+
+ virtual ~SvLBoxFontString();
+
+ /** Creates a new empty list box item. */
+ virtual SvLBoxItem* Create() const;
+
+ void InitViewData( SvLBox*,SvLBoxEntry*,SvViewDataItem* );
+
+ /** Paints this entry to the specified position, using the own font settings. */
+ void Paint(
+ const Point& rPos,
+ SvLBox& rDev,
+ sal_uInt16 nFlags,
+ SvLBoxEntry* pEntry );
+};
+
+
+// ============================================================================
+
+/** A list box supporting formatted string entries. */
+class SVX_DLLPUBLIC SvxFontListBox : public SvTabListBox
+{
+private:
+ Font maStdFont; /// Used for entries without specific font.
+
+ // The following members are used to store additional parameters for InitEntry().
+ Font maEntryFont; /// Current entry font used in InitEntry().
+ const Color* mpEntryColor; /// Current entry color used in InitEntry().
+ bool mbUseFont; /// true = Use maEntryFont/mpEntryColor in InitEntry().
+
+public:
+ SvxFontListBox( Window* pParent, const ResId& rResId );
+
+ /** Inserts a list entry and sets the font used for this entry.
+ @param pColor The font color. NULL = use default listbox text color. */
+ void InsertFontEntry(
+ const String& rString, const Font& rFont, const Color* pColor = NULL );
+
+ /** Selects/deselects an entry specified by its position in the list box. */
+ void SelectEntryPos( sal_uInt16 nPos, bool bSelect = true );
+ /** Removes a selection. */
+ void SetNoSelection();
+
+ /** Returns the position of the entry currently selected or LIST_APPEND. */
+ ULONG GetSelectEntryPos() const;
+ /** Returns the text of the selected entry or an empty string. */
+ XubString GetSelectEntry() const;
+
+protected:
+ /** Initializes a new SvLBoxFontString entry.
+ @descr Uses current value of maEntryFont to set the entry font (if mbUseFont is true). */
+ virtual void InitEntry(
+ SvLBoxEntry* pEntry,
+ const XubString& rEntryText,
+ const Image& rCollImg,
+ const Image& rExpImg,
+ SvLBoxButtonKind eButtonKind );
+};
+
+#if ENABLE_LAYOUT
+
+namespace layout
+{
+class SvxFontListBoxImpl;
+class SVX_DLLPUBLIC SvxFontListBox : public ListBox
+{
+ /*DECL_GET_IMPL( SvxFontListBox );
+ DECL_CONSTRUCTORS( SvxFontListBox, ListBox, WB_BORDER );
+ DECL_GET_WINDOW (SvxFontListBox);*/
+
+public:
+ SvxFontListBox( Context*, const char* );
+ ~SvxFontListBox ();
+ sal_uInt16 InsertFontEntry (String const& entry, Font const& font, Color const* color=0);
+};
+};
+
+#endif
+
+
+// ============================================================================
+
+#endif
+