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 8namespace panel { 9 10// The height in pixels of the titlebar. 11static 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. 21const int kPanelMinWidth = 80; 22const int kPanelMinHeight = kTitlebarHeight + 10; 23 24// The panel can be minimized to 4-pixel lines. 25static const int kMinimizedPanelHeight = 4; 26 27// The size (width or height) of the app icon (taskbar icon). 28static 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. 32static const int kPanelButtonSize = 24; 33 34// The padding in pixeles between the icon and the left border. 35const int kTitlebarLeftPadding = 10; 36 37// The padding in pixeles between the close button and the right border. 38const int kTitlebarRightPadding = 6; 39 40// The padding in piexles between the icon and the title text. 41const int kIconAndTitlePadding = 11; 42 43// The padding in piexles between the title text and the button. 44const int kTitleAndButtonPadding = 11; 45 46// The padding in pixeles between buttons. 47static 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). 51static const int kNumberOfTimesToFlashPanelForAttention = 30; 52 53// Different types of buttons that can be shown on panel's titlebar. 54enum 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. 63enum 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. 69enum 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. 87enum 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