Documentation
¶
Index ¶
- func BindListBoxModel[T any](lb *gtk.ListBox, m gio.ListModeller, f func(T) gtk.Widgetter)
- func BindModel[T any](add func(int, gtk.Widgetter), remove func(int, gtk.Widgetter), ...) func()
- func NewObjectComparer[T any](f func(T, T) int) glib.CompareDataFunc
- type App
- type Confirmation
- type Info
- type MainWindow
- type MullvadPage
- type Page
- type PeerPage
- type PreferencesWindow
- type Prompt
- type PromptResponse
- type SelfPage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BindListBoxModel ¶ added in v0.14.0
func BindListBoxModel[T any](lb *gtk.ListBox, m gio.ListModeller, f func(T) gtk.Widgetter)
func NewObjectComparer ¶ added in v0.14.0
Types ¶
type App ¶
type App struct {
// contains filtered or unexported fields
}
App is the main type for the app, containing all of the state necessary to run it.
type Confirmation ¶
func (Confirmation) Show ¶
func (d Confirmation) Show(a *App, res func(bool))
type MainWindow ¶
type MainWindow struct { *adw.ApplicationWindow `gtk:"MainWindow"` ToastOverlay *adw.ToastOverlay SplitView *adw.NavigationSplitView StatusSwitch *gtk.Switch MainMenuButton *gtk.MenuButton PeersStack *gtk.Stack WorkSpinner *gtk.Spinner ProfileDropDown *gtk.DropDown ProfileModel *gtk.StringList ProfileSortModel *gtk.SortListModel }
func NewMainWindow ¶
func NewMainWindow(app *gtk.Application) *MainWindow
type MullvadPage ¶ added in v0.12.0
type MullvadPage struct { *adw.StatusPage `gtk:"Page"` ExitNodesGroup *adw.PreferencesGroup // contains filtered or unexported fields }
func NewMullvadPage ¶ added in v0.12.0
func NewMullvadPage(a *App, status tsutil.Status) *MullvadPage
func (*MullvadPage) ID ¶ added in v0.12.0
func (page *MullvadPage) ID() string
func (*MullvadPage) Name ¶ added in v0.12.0
func (page *MullvadPage) Name() string
func (*MullvadPage) Root ¶ added in v0.12.0
func (page *MullvadPage) Root() gtk.Widgetter
func (*MullvadPage) Update ¶ added in v0.12.0
func (page *MullvadPage) Update(a *App, peer *ipnstate.PeerStatus, status tsutil.Status)
type Page ¶ added in v0.12.0
type Page interface { // Root returns the root widget that is can be placed into a container. Root() gtk.Widgetter // An identifier for the page. ID() string // Name returns a displayable name for the page. Name() string // Update performs an update of the UI to match new state. Update(*App, *ipnstate.PeerStatus, tsutil.Status) }
Page represents the UI for a single page of the app. This usually corresponds to information about a specific peer in the tailnet.
type PeerPage ¶
type PeerPage struct { *adw.StatusPage `gtk:"Page"` IPList *gtk.ListBox AdvertisedRoutesGroup *adw.PreferencesGroup AdvertisedRoutesList *gtk.ListBox UDPRow *adw.ActionRow UDP *gtk.Image IPv4Row *adw.ActionRow IPv4Icon *gtk.Image IPv4Addr *gtk.Label IPv6Row *adw.ActionRow IPv6Icon *gtk.Image IPv6Addr *gtk.Label UPnPRow *adw.ActionRow UPnP *gtk.Image PMPRow *adw.ActionRow PMP *gtk.Image PCPRow *adw.ActionRow PCP *gtk.Image HairPinningRow *adw.ActionRow HairPinning *gtk.Image PreferredDERPRow *adw.ActionRow PreferredDERP *gtk.Label DERPLatencies *adw.ExpanderRow MiscGroup *adw.PreferencesGroup ExitNodeRow *adw.SwitchRow OnlineRow *adw.ActionRow Online *gtk.Image LastSeenRow *adw.ActionRow LastSeen *gtk.Label CreatedRow *adw.ActionRow Created *gtk.Label LastWriteRow *adw.ActionRow LastWrite *gtk.Label LastHandshakeRow *adw.ActionRow LastHandshake *gtk.Label RxBytesRow *adw.ActionRow RxBytes *gtk.Label TxBytesRow *adw.ActionRow TxBytes *gtk.Label SendFileGroup *adw.PreferencesGroup SendFileRow *adw.ActionRow DropTarget *gtk.DropTarget // contains filtered or unexported fields }
func NewPeerPage ¶
type PreferencesWindow ¶
type PreferencesWindow struct { *adw.PreferencesWindow `gtk:"PreferencesWindow"` UseTrayIconRow *adw.SwitchRow PollingIntervalRow *adw.SpinRow PollingIntervalAdjustment *gtk.Adjustment }
func NewPreferencesWindow ¶
func NewPreferencesWindow() *PreferencesWindow
type Prompt ¶
type Prompt struct { Heading string Body string Responses []PromptResponse }
type PromptResponse ¶ added in v0.13.0
type PromptResponse struct { ID string Label string Appearance adw.ResponseAppearance Default bool }
type SelfPage ¶ added in v0.12.0
type SelfPage struct { *adw.StatusPage `gtk:"Page"` IPList *gtk.ListBox OptionsGroup *adw.PreferencesGroup AdvertiseExitNodeRow *adw.SwitchRow AllowLANAccessRow *adw.SwitchRow AcceptRoutesRow *adw.SwitchRow AdvertisedRoutesList *gtk.ListBox AdvertiseRouteButton *gtk.Button NetCheckGroup *adw.PreferencesGroup NetCheckButton *gtk.Button LastNetCheckRow *adw.ActionRow LastNetCheck *gtk.Label UDPRow *adw.ActionRow UDP *gtk.Image IPv4Row *adw.ActionRow IPv4Icon *gtk.Image IPv4Addr *gtk.Label IPv6Row *adw.ActionRow IPv6Icon *gtk.Image IPv6Addr *gtk.Label UPnPRow *adw.ActionRow UPnP *gtk.Image PMPRow *adw.ActionRow PMP *gtk.Image PCPRow *adw.ActionRow PCP *gtk.Image CaptivePortalRow *adw.ActionRow CaptivePortal *gtk.Image PreferredDERPRow *adw.ActionRow PreferredDERP *gtk.Label DERPLatencies *adw.ExpanderRow FilesList *gtk.ListBox // contains filtered or unexported fields }
func NewSelfPage ¶ added in v0.12.0
Click to show internal directories.
Click to hide internal directories.