You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
192 lines
5.1 KiB
192 lines
5.1 KiB
//----------------------------------------------------------------------------
|
|
//
|
|
// Copyright (c) 1997-1999 Microsoft Corporation
|
|
// All rights reserved.
|
|
//
|
|
// File Name:
|
|
// listbox.c
|
|
//
|
|
// Description:
|
|
// This file contains supplemental functions for list boxes throughout
|
|
// the wizard.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#include "pch.h"
|
|
|
|
//----------------------------------------------------------------------------
|
|
//
|
|
// Function: OnUpButtonPressed
|
|
//
|
|
// Purpose: Generic procedure called whenever a user clicks the Up arrow
|
|
// button on any of the property pages
|
|
//
|
|
// this function shifts the currently selected item up one entry in
|
|
// the list box
|
|
//
|
|
// Arguments: IN HWND hwnd - handle to the dialog with the list box
|
|
// IN WORD ListBoxControlID - control ID of the list box
|
|
//
|
|
// Returns: VOID
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
VOID
|
|
OnUpButtonPressed( IN HWND hwnd, IN WORD ListBoxControlID )
|
|
{
|
|
|
|
INT_PTR iIndex;
|
|
TCHAR szBuffer[MAX_INILINE_LEN];
|
|
HWND hListBox = GetDlgItem( hwnd, ListBoxControlID );
|
|
|
|
iIndex = SendMessage( hListBox, LB_GETCURSEL, 0, 0 );
|
|
|
|
//
|
|
// If there is no currently selected item, do nothing
|
|
//
|
|
|
|
if( iIndex == LB_ERR )
|
|
{
|
|
return;
|
|
}
|
|
|
|
SendMessage( hListBox, LB_GETTEXT, iIndex, (LPARAM) szBuffer );
|
|
|
|
SendMessage( hListBox, LB_DELETESTRING, iIndex, 0 );
|
|
|
|
//
|
|
// -1 so it inserts it before the current item
|
|
//
|
|
|
|
SendMessage( hListBox, LB_INSERTSTRING, iIndex - 1, (LPARAM) szBuffer );
|
|
|
|
SendMessage( hListBox, LB_SETCURSEL, iIndex - 1, 0 );
|
|
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
//
|
|
// Function: OnDownButtonPressed
|
|
//
|
|
// Purpose: Generic procedure called whenever a user clicks the Down arrow
|
|
// button on any of the property pages
|
|
//
|
|
// this function shifts the currently selected item down one entry
|
|
// in the list box
|
|
//
|
|
// Arguments: IN HWND hwnd - handle to the dialog with the list box
|
|
// IN WORD ListBoxControlID - control ID of the list box
|
|
//
|
|
// Returns: VOID
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
VOID
|
|
OnDownButtonPressed( IN HWND hwnd, IN WORD ListBoxControlID )
|
|
{
|
|
|
|
INT_PTR iIndex;
|
|
TCHAR szBuffer[MAX_INILINE_LEN];
|
|
HWND hListBox = GetDlgItem( hwnd, ListBoxControlID );
|
|
|
|
iIndex = SendMessage( hListBox, LB_GETCURSEL, 0, 0 );
|
|
|
|
//
|
|
// If there is no currently selected item, do nothing
|
|
//
|
|
|
|
if( iIndex == LB_ERR )
|
|
{
|
|
return;
|
|
}
|
|
|
|
SendMessage( hListBox, LB_GETTEXT, iIndex, (LPARAM) szBuffer );
|
|
|
|
SendMessage( hListBox, LB_DELETESTRING, iIndex, 0 );
|
|
|
|
//
|
|
// +1 so it inserts it after the current item
|
|
//
|
|
SendMessage( hListBox, LB_INSERTSTRING, iIndex + 1, (LPARAM) szBuffer );
|
|
|
|
SendMessage( hListBox, LB_SETCURSEL, iIndex + 1, 0 );
|
|
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
//
|
|
// Function: SetArrows
|
|
//
|
|
// Purpose: this function examines the entries in the list box and enables
|
|
// and disables the up and down arrows appropriately
|
|
//
|
|
// Arguments:
|
|
// IN HWND hwnd - handle to the dialog
|
|
// IN WORD ListBoxControlID - the list box to set the arrows for
|
|
// IN WORD UpButtonControlID - the up button associated with the
|
|
// list box
|
|
// IN WORD DownButtonControlID - the down button associated with the
|
|
// list box
|
|
|
|
|
|
// Returns: VOID
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
VOID
|
|
SetArrows( IN HWND hwnd,
|
|
IN WORD ListBoxControlID,
|
|
IN WORD UpButtonControlID,
|
|
IN WORD DownButtonControlID )
|
|
{
|
|
|
|
INT_PTR iIndex;
|
|
INT_PTR iCount;
|
|
|
|
HWND hListBox = GetDlgItem( hwnd, ListBoxControlID );
|
|
HWND hUpButton = GetDlgItem( hwnd, UpButtonControlID );
|
|
HWND hDownButton = GetDlgItem( hwnd, DownButtonControlID );
|
|
|
|
iCount = SendMessage( hListBox, LB_GETCOUNT, 0, 0 );
|
|
|
|
if( iCount < 2 )
|
|
{
|
|
|
|
EnableWindow( hUpButton, FALSE );
|
|
|
|
EnableWindow( hDownButton, FALSE );
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
iIndex = SendMessage( hListBox, LB_GETCURSEL, 0, 0 );
|
|
|
|
// case when the first item is selected
|
|
if( iIndex == 0 )
|
|
{
|
|
|
|
EnableWindow( hUpButton, FALSE );
|
|
|
|
EnableWindow( hDownButton, TRUE );
|
|
|
|
}
|
|
// case when the last item is selected, -1 because iIndex is zero-based
|
|
else if( iIndex == (iCount - 1) )
|
|
{
|
|
|
|
EnableWindow( hUpButton, TRUE );
|
|
|
|
EnableWindow( hDownButton, FALSE );
|
|
|
|
}
|
|
// case when an item in the middle is selected
|
|
else
|
|
{
|
|
|
|
EnableWindow( hUpButton, TRUE );
|
|
|
|
EnableWindow( hDownButton, TRUE );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|