Page Menu
Home
GnuPG
Search
Configure Global Search
Log In
Files
F35444127
pinwindow.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Size
2 KB
Subscribers
None
pinwindow.h
View Options
/*
pinwindow.h - PinWindow is a simple fltk dialog for entring password
with timeout. if needed description (long text), error message, qualitybar
and etc should used PassWindow.
Copyright (C) 2016 Anatoly madRat L. Berenblit
Written by Anatoly madRat L. Berenblit <madrat-@users.noreply.github.com>.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
SPDX-License-Identifier: GPL-2.0+
*/
#ifndef __PINWINDOW_H__
#define __PINWINDOW_H__
#include
"config.h"
class
Fl_Window
;
class
Fl_Box
;
class
Fl_Input
;
class
Fl_Button
;
class
Fl_Widget
;
#include
<assert.h>
#include
<string>
class
PinWindow
{
protected
:
static
const
char
*
TITLE
;
static
const
char
*
BUTTON_OK
;
static
const
char
*
BUTTON_CANCEL
;
static
const
char
*
PROMPT
;
protected
:
PinWindow
(
const
PinWindow
&
);
PinWindow
&
operator
=
(
const
PinWindow
&
);
Fl_Window
*
window_
;
Fl_Box
*
icon_
;
Fl_Box
*
message_
;
Fl_Input
*
input_
;
Fl_Button
*
ok_
,
*
cancel_
;
std
::
string
cancel_name_
;
char
*
passwd_
;
// SECURE_MEMORY
unsigned
int
timeout_
;
// click cancel if timeout
public
:
virtual
~
PinWindow
();
static
PinWindow
*
create
();
inline
const
char
*
passwd
()
const
{
return
passwd_
;
}
virtual
void
timeout
(
unsigned
int
time
);
// 0 - infinity, seconds
virtual
void
title
(
const
char
*
title
);
virtual
void
ok
(
const
char
*
ok
);
virtual
void
cancel
(
const
char
*
cancel
);
virtual
void
prompt
(
const
char
*
message
);
virtual
void
showModal
();
virtual
void
showModal
(
const
int
argc
,
char
*
argv
[]);
protected
:
PinWindow
();
void
wipe
();
// clear UI memory
void
release
();
// clear secure memory
void
update_cancel_label
();
virtual
int
init
(
const
int
cx
,
const
int
cy
);
//callbacks
static
void
cancel_cb
(
Fl_Widget
*
button
,
void
*
val
);
static
void
ok_cb
(
Fl_Widget
*
button
,
void
*
val
);
static
void
timeout_cb
(
void
*
);
// ISSUE: Fl_Window component in tinycore works only as Fl_Window::label(...); not Fl_Widget
template
<
class
TWidget
>
void
set_label
(
TWidget
*
widget
,
const
char
*
label
,
const
char
*
def
)
{
assert
(
NULL
!=
widget
);
// widget must be created
if
(
NULL
!=
widget
)
{
if
(
NULL
!=
label
&&
0
!=
*
label
)
widget
->
copy_label
(
label
);
else
widget
->
label
(
def
);
}
};
};
#endif
//#ifndef __PINWINDOW_H__
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Sun, Feb 8, 2:29 PM (1 d, 17 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
e4/0c/573e9bae32582d27e75339feda20
Attached To
rP Pinentry
Event Timeline
Log In to Comment