Home | History | Annotate | Download | only in panels
      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 // Edge at which a panel is being resized using the mouse.
     69 enum ResizingSides {
     70   RESIZE_NONE = 0,
     71   RESIZE_TOP,
     72   RESIZE_TOP_RIGHT,
     73   RESIZE_RIGHT,
     74   RESIZE_BOTTOM_RIGHT,
     75   RESIZE_BOTTOM,
     76   RESIZE_BOTTOM_LEFT,
     77   RESIZE_LEFT,
     78   RESIZE_TOP_LEFT
     79 };
     80 
     81 // Ways a panel can be resized.
     82 enum Resizability {
     83   NOT_RESIZABLE = 0,
     84   RESIZABLE_TOP = 0x1,
     85   RESIZABLE_BOTTOM = 0x2,
     86   RESIZABLE_LEFT = 0x4,
     87   RESIZABLE_RIGHT = 0x8,
     88   RESIZABLE_TOP_LEFT = 0x10,
     89   RESIZABLE_TOP_RIGHT = 0x20,
     90   RESIZABLE_BOTTOM_LEFT = 0x40,
     91   RESIZABLE_BOTTOM_RIGHT = 0x80,
     92   RESIZABLE_EXCEPT_BOTTOM = RESIZABLE_TOP | RESIZABLE_LEFT | RESIZABLE_RIGHT |
     93       RESIZABLE_TOP_LEFT | RESIZABLE_TOP_RIGHT,
     94   RESIZABLE_ALL = RESIZABLE_TOP | RESIZABLE_BOTTOM | RESIZABLE_LEFT |
     95       RESIZABLE_RIGHT | RESIZABLE_TOP_LEFT | RESIZABLE_TOP_RIGHT |
     96       RESIZABLE_BOTTOM_LEFT | RESIZABLE_BOTTOM_RIGHT
     97 };
     98 
     99 // Describes how 4 corners of a panel should be painted.
    100 enum CornerStyle {
    101   NOT_ROUNDED = 0,
    102   TOP_ROUNDED = 0x1,
    103   BOTTOM_ROUNDED = 0x2,
    104   ALL_ROUNDED = TOP_ROUNDED | BOTTOM_ROUNDED
    105 };
    106 
    107 }  // namespace panel
    108 
    109 #endif  // CHROME_BROWSER_UI_PANELS_PANEL_CONSTANTS_H_
    110