Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*
3 : : * This file is part of the LibreOffice project.
4 : : *
5 : : * This Source Code Form is subject to the terms of the Mozilla Public
6 : : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : : *
9 : : * This file incorporates work covered by the following license notice:
10 : : *
11 : : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : : * contributor license agreements. See the NOTICE file distributed
13 : : * with this work for additional information regarding copyright
14 : : * ownership. The ASF licenses this file to you under the Apache
15 : : * License, Version 2.0 (the "License"); you may not use this file
16 : : * except in compliance with the License. You may obtain a copy of
17 : : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : : */
19 : :
20 : :
21 : : #include "curledit.hxx"
22 : : #include <vcl/svapp.hxx>
23 : : #include <osl/diagnose.h>
24 : :
25 : : //.........................................................................
26 : : namespace dbaui
27 : : {
28 : : //.........................................................................
29 : : DBG_NAME(OConnectionURLEdit)
30 : : //=========================================================================
31 : : //= OConnectionURLEdit
32 : : //=========================================================================
33 : 0 : OConnectionURLEdit::OConnectionURLEdit(Window* _pParent, const ResId& _rResId,sal_Bool _bShowPrefix)
34 : : :Edit(_pParent, _rResId)
35 : : ,m_pTypeCollection(NULL)
36 : : ,m_pForcedPrefix(NULL)
37 [ # # ]: 0 : ,m_bShowPrefix(_bShowPrefix)
38 : : {
39 : : DBG_CTOR(OConnectionURLEdit ,NULL);
40 : 0 : }
41 : :
42 : : //-------------------------------------------------------------------------
43 [ # # ]: 0 : OConnectionURLEdit::~OConnectionURLEdit()
44 : : {
45 : : DBG_DTOR(OConnectionURLEdit ,NULL);
46 : : // delete my sub controls
47 : 0 : Edit* pSubEdit = GetSubEdit();
48 [ # # ]: 0 : SetSubEdit(NULL);
49 [ # # ][ # # ]: 0 : delete pSubEdit;
50 [ # # ][ # # ]: 0 : delete m_pForcedPrefix;
51 [ # # ]: 0 : }
52 : :
53 : : //-------------------------------------------------------------------------
54 : 0 : void OConnectionURLEdit::SetTextNoPrefix(const String& _rText)
55 : : {
56 : : OSL_ENSURE(GetSubEdit(), "OConnectionURLEdit::SetTextNoPrefix: have no current type, not changing the text!");
57 [ # # ]: 0 : if (GetSubEdit())
58 : 0 : GetSubEdit()->SetText(_rText);
59 : 0 : }
60 : :
61 : : //-------------------------------------------------------------------------
62 : 0 : String OConnectionURLEdit::GetTextNoPrefix() const
63 : : {
64 [ # # ]: 0 : if (GetSubEdit())
65 : 0 : return GetSubEdit()->GetText();
66 : 0 : return GetText();
67 : : }
68 : :
69 : : //-------------------------------------------------------------------------
70 : 0 : void OConnectionURLEdit::SetText(const String& _rStr)
71 : : {
72 : 0 : Selection aNoSelection(0,0);
73 [ # # ]: 0 : SetText(_rStr, aNoSelection);
74 : 0 : }
75 : :
76 : : //-------------------------------------------------------------------------
77 : 0 : void OConnectionURLEdit::SetText(const String& _rStr, const Selection& /*_rNewSelection*/)
78 : : {
79 : : // create new sub controls, if necessary
80 [ # # ]: 0 : if (!GetSubEdit())
81 [ # # ][ # # ]: 0 : SetSubEdit(new Edit(this, 0));
[ # # ]
82 [ # # ]: 0 : if ( !m_pForcedPrefix )
83 : : {
84 [ # # ][ # # ]: 0 : m_pForcedPrefix = new FixedText(this, WB_VCENTER);
85 : :
86 : : // we use a gray background for the fixed text
87 [ # # ][ # # ]: 0 : StyleSettings aSystemStyle = Application::GetSettings().GetStyleSettings();
88 [ # # ][ # # ]: 0 : m_pForcedPrefix->SetBackground(Wallpaper(aSystemStyle.GetDialogColor()));
[ # # ][ # # ]
89 : : }
90 : :
91 [ # # ]: 0 : m_pForcedPrefix->Show(m_bShowPrefix);
92 : :
93 : 0 : sal_Bool bIsEmpty = 0 == _rStr.Len();
94 : : // calc the prefix
95 [ # # ]: 0 : String sPrefix;
96 [ # # ]: 0 : if (!bIsEmpty)
97 : : {
98 : : // determine the type of the new URL described by the new text
99 [ # # ][ # # ]: 0 : sPrefix = m_pTypeCollection->getPrefix(_rStr);
[ # # ][ # # ]
100 : : }
101 : :
102 : : // the fixed text gets the prefix
103 [ # # ]: 0 : if ( m_pForcedPrefix )
104 [ # # ]: 0 : m_pForcedPrefix->SetText(sPrefix);
105 : :
106 : : // both subs have to be resized according to the text len of the prefix
107 [ # # ]: 0 : Size aMySize = GetSizePixel();
108 : 0 : sal_Int32 nTextWidth = 0;
109 [ # # ][ # # ]: 0 : if ( m_pForcedPrefix && m_bShowPrefix)
110 : : {
111 [ # # ]: 0 : nTextWidth = m_pForcedPrefix->GetTextWidth(sPrefix) + 2;
112 [ # # ]: 0 : m_pForcedPrefix->SetPosSizePixel(Point(0, -2), Size(nTextWidth, aMySize.Height()));
113 : : }
114 [ # # ]: 0 : GetSubEdit()->SetPosSizePixel(Point(nTextWidth, -2), Size(aMySize.Width() - nTextWidth - 4, aMySize.Height()));
115 : : // -2 because the edit has a frame which is 2 pixel wide ... should not be necessary, but I don't fully understand this ....
116 : :
117 : : // show the sub controls (in case they were just created)
118 [ # # ]: 0 : GetSubEdit()->Show();
119 : :
120 : : // do the real SetTex
121 : : // Edit::SetText(bIsEmpty ? _rStr : m_pTypeCollection->cutPrefix(_rStr), _rNewSelection);
122 [ # # ]: 0 : String sNewText( _rStr );
123 [ # # ]: 0 : if ( !bIsEmpty )
124 [ # # ][ # # ]: 0 : sNewText = m_pTypeCollection->cutPrefix( _rStr );
[ # # ][ # # ]
125 [ # # ][ # # ]: 0 : Edit::SetText( sNewText );
[ # # ]
126 : 0 : }
127 : :
128 : : //-------------------------------------------------------------------------
129 : 0 : String OConnectionURLEdit::GetText() const
130 : : {
131 [ # # ]: 0 : if ( m_pForcedPrefix )
132 [ # # ][ # # ]: 0 : return m_pForcedPrefix->GetText() += Edit::GetText();
[ # # ][ # # ]
133 : 0 : return Edit::GetText();
134 : : }
135 : : // -----------------------------------------------------------------------------
136 : 0 : void OConnectionURLEdit::ShowPrefix(sal_Bool _bShowPrefix)
137 : : {
138 : 0 : m_bShowPrefix = _bShowPrefix;
139 [ # # ]: 0 : if ( m_pForcedPrefix )
140 : 0 : m_pForcedPrefix->Show(m_bShowPrefix);
141 : 0 : }
142 : : //.........................................................................
143 : : } // namespace dbaui
144 : : //.........................................................................
145 : :
146 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|