1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_UI_PANELS_PANEL_CONSTANTS_H_ 6 #define CHROME_BROWSER_UI_PANELS_PANEL_CONSTANTS_H_ 7 8 namespace panel { 9 10 // The height in pixels of the titlebar. 11 static const int kTitlebarHeight = 36; 12 13 // Absolute minimum width and height for panels, including non-client area. 14 // Should only be big enough to accomodate a close button on the reasonably 15 // recognisable titlebar. 16 // These numbers are semi-arbitrary. 17 // Motivation for 'width' is to make main buttons on the titlebar functional. 18 // Motivation for height is to allow autosized tightly-wrapped panel with a 19 // single line of text - so the height is set to be likely less then a titlebar, 20 // to make sure even small content is tightly wrapped. 21 const int kPanelMinWidth = 80; 22 const int kPanelMinHeight = kTitlebarHeight + 10; 23 24 // The panel can be minimized to 4-pixel lines. 25 static const int kMinimizedPanelHeight = 4; 26 27 // The size (width or height) of the app icon (taskbar icon). 28 static const int kPanelAppIconSize = 32; 29 30 // The size (width or height) of the button, which is also the size of the 31 // hit target area. 32 static const int kPanelButtonSize = 24; 33 34 // The padding in pixeles between the icon and the left border. 35 const int kTitlebarLeftPadding = 10; 36 37 // The padding in pixeles between the close button and the right border. 38 const int kTitlebarRightPadding = 6; 39 40 // The padding in piexles between the icon and the title text. 41 const int kIconAndTitlePadding = 11; 42 43 // The padding in piexles between the title text and the button. 44 const int kTitleAndButtonPadding = 11; 45 46 // The padding in pixeles between buttons. 47 static const int kButtonPadding = 5; 48 49 // The number of times to flash the panel's taskbar icon in order to draw the 50 // user's attention (Windows only). 51 static const int kNumberOfTimesToFlashPanelForAttention = 30; 52 53 // Different types of buttons that can be shown on panel's titlebar. 54 enum TitlebarButtonType { 55 CLOSE_BUTTON, 56 MINIMIZE_BUTTON, 57 RESTORE_BUTTON 58 }; 59 60 // Different platforms use different modifier keys to change the behavior 61 // of a mouse click. This enum captures the meaning of the modifier rather 62 // than the actual modifier key to generalize across platforms. 63 enum ClickModifier { 64 NO_MODIFIER, 65 APPLY_TO_ALL, // Apply the click behavior to all panels in the collection. 66 }; 67 68 // Ways a panel can be resized. 69 enum Resizability { 70 NOT_RESIZABLE = 0, 71 RESIZABLE_TOP = 0x1, 72 RESIZABLE_BOTTOM = 0x2, 73 RESIZABLE_LEFT = 0x4, 74 RESIZABLE_RIGHT = 0x8, 75 RESIZABLE_TOP_LEFT = 0x10, 76 RESIZABLE_TOP_RIGHT = 0x20, 77 RESIZABLE_BOTTOM_LEFT = 0x40, 78 RESIZABLE_BOTTOM_RIGHT = 0x80, 79 RESIZABLE_EXCEPT_BOTTOM = RESIZABLE_TOP | RESIZABLE_LEFT | RESIZABLE_RIGHT | 80 RESIZABLE_TOP_LEFT | RESIZABLE_TOP_RIGHT, 81 RESIZABLE_ALL = RESIZABLE_TOP | RESIZABLE_BOTTOM | RESIZABLE_LEFT | 82 RESIZABLE_RIGHT | RESIZABLE_TOP_LEFT | RESIZABLE_TOP_RIGHT | 83 RESIZABLE_BOTTOM_LEFT | RESIZABLE_BOTTOM_RIGHT 84 }; 85 86 // Describes how 4 corners of a panel should be painted. 87 enum CornerStyle { 88 NOT_ROUNDED = 0, 89 TOP_ROUNDED = 0x1, 90 BOTTOM_ROUNDED = 0x2, 91 ALL_ROUNDED = TOP_ROUNDED | BOTTOM_ROUNDED 92 }; 93 94 } // namespace panel 95 96 #endif // CHROME_BROWSER_UI_PANELS_PANEL_CONSTANTS_H_ 97