/usr/include/InterViews/telltale.h is in ivtools-dev 1.2.11a1-6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | /*
* Copyright (c) 1987, 1988, 1989, 1990, 1991 Stanford University
* Copyright (c) 1991 Silicon Graphics, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation for any purpose is hereby granted without fee, provided
* that (i) the above copyright notices and this permission notice appear in
* all copies of the software and related documentation, and (ii) the names of
* Stanford and Silicon Graphics may not be used in any advertising or
* publicity relating to the software without the specific, prior written
* permission of Stanford and Silicon Graphics.
*
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
*
* IN NO EVENT SHALL STANFORD OR SILICON GRAPHICS BE LIABLE FOR
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*/
/*
* Telltale - glyph with a state that may affect appearance
*/
#ifndef ivlook_telltale_h
#define ivlook_telltale_h
#include <InterViews/monoglyph.h>
#include <InterViews/observe.h>
class TelltaleGroup;
typedef unsigned int TelltaleFlags;
class TelltaleState : public Resource, public Observable {
public:
TelltaleState(const TelltaleFlags = 0);
virtual ~TelltaleState();
enum {
is_enabled = 0x1,
is_visible = 0x2,
is_enabled_visible = 0x3,
is_active = 0x4,
is_enabled_active = 0x5,
is_visible_active = 0x6,
is_enabled_visible_active = 0x7,
is_chosen = 0x8,
is_enabled_chosen = 0x9,
is_visible_chosen = 0xa,
is_enabled_visible_chosen = 0xb,
is_active_chosen = 0xc,
is_enabled_active_chosen = 0xd,
is_visible_active_chosen = 0xe,
is_enabled_visible_active_chosen = 0xf,
is_running = 0x10,
is_choosable = 0x20,
is_toggle = 0x40,
max_flags = 0x80
};
TelltaleFlags flags() const;
TelltaleGroup* group() const;
virtual void set(const TelltaleFlags, boolean);
virtual boolean test(const TelltaleFlags) const;
virtual void join(TelltaleGroup*);
virtual void leave_group();
private:
TelltaleFlags flags_;
TelltaleGroup* group_;
};
inline TelltaleFlags TelltaleState::flags() const { return flags_; }
inline TelltaleGroup* TelltaleState::group() const { return group_; }
class Telltale : public MonoGlyph, public Observer {
protected:
Telltale(Glyph*, TelltaleState* = nil);
public:
virtual ~Telltale();
virtual void state(TelltaleState*);
virtual TelltaleState* state() const;
virtual void disconnect(Observable*);
private:
TelltaleState* state_;
/* backward compatibility */
public:
void highlight(boolean);
boolean highlighted() const;
void choose(boolean);
boolean chosen() const;
void enable(boolean);
boolean enabled() const;
};
#define Telltale_access(writer,reader,flag) \
inline void Telltale::writer(boolean b) { state()->set(flag, b); } \
inline boolean Telltale::reader() const { return state()->test(flag); }
Telltale_access(highlight,highlighted,TelltaleState::is_active)
Telltale_access(choose,chosen,TelltaleState::is_chosen)
Telltale_access(enable,enabled,TelltaleState::is_enabled)
class TelltaleGroup : public Resource {
public:
TelltaleGroup();
virtual ~TelltaleGroup();
virtual void update(TelltaleState*);
virtual void remove(TelltaleState*);
private:
TelltaleState* current_;
};
#endif
|