gfx/skia/trunk/include/views/SkTextBox.h

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     2 /*
     3  * Copyright 2006 The Android Open Source Project
     4  *
     5  * Use of this source code is governed by a BSD-style license that can be
     6  * found in the LICENSE file.
     7  */
    10 #ifndef SkTextBox_DEFINED
    11 #define SkTextBox_DEFINED
    13 #include "SkCanvas.h"
    15 /** \class SkTextBox
    17     SkTextBox is a helper class for drawing 1 or more lines of text
    18     within a rectangle. The textbox is positioned and clipped by its Frame.
    19     The Margin rectangle controls where the text is drawn relative to
    20     the Frame. Line-breaks occur inside the Margin rectangle.
    22     Spacing is a linear equation used to compute the distance between lines
    23     of text. Spacing consists of two scalars: mul and add, and the spacing
    24     between lines is computed as: spacing = paint.getTextSize() * mul + add
    25 */
    26 class SkTextBox {
    27 public:
    28     SkTextBox();
    30     enum Mode {
    31         kOneLine_Mode,
    32         kLineBreak_Mode,
    34         kModeCount
    35     };
    36     Mode    getMode() const { return (Mode)fMode; }
    37     void    setMode(Mode);
    39     enum SpacingAlign {
    40         kStart_SpacingAlign,
    41         kCenter_SpacingAlign,
    42         kEnd_SpacingAlign,
    44         kSpacingAlignCount
    45     };
    46     SpacingAlign    getSpacingAlign() const { return (SpacingAlign)fSpacingAlign; }
    47     void            setSpacingAlign(SpacingAlign);
    49     void    getBox(SkRect*) const;
    50     void    setBox(const SkRect&);
    51     void    setBox(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom);
    53     void    getSpacing(SkScalar* mul, SkScalar* add) const;
    54     void    setSpacing(SkScalar mul, SkScalar add);
    56     void    draw(SkCanvas*, const char text[], size_t len, const SkPaint&);
    58     void    setText(const char text[], size_t len, const SkPaint&);
    59     void    draw(SkCanvas*);
    60     int     countLines() const;
    61     SkScalar getTextHeight() const;
    63 private:
    64     SkRect      fBox;
    65     SkScalar    fSpacingMul, fSpacingAdd;
    66     uint8_t     fMode, fSpacingAlign;
    67     const char* fText;
    68     size_t      fLen;
    69     const SkPaint* fPaint;
    70 };
    72 class SkTextLineBreaker {
    73 public:
    74     static int CountLines(const char text[], size_t len, const SkPaint&, SkScalar width);
    75 };
    77 #endif

mercurial